home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Flex-CW 2.5.1 / scan.c < prev    next >
Text File  |  1995-10-14  |  109KB  |  3,654 lines

  1. #line 2 "scan.c"
  2. /* A lexical scanner generated by flex */
  3.  
  4. /* Scanner skeleton version:
  5.  * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.81 95/03/20 14:02:24 vern Exp $
  6.  */
  7.  
  8. #define FLEX_SCANNER
  9. #define YY_FLEX_MAJOR_VERSION 2
  10. #define YY_FLEX_MINOR_VERSION 5
  11.  
  12. #include <stdio.h>
  13.  
  14.  
  15. /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
  16. #ifdef c_plusplus
  17. #ifndef __cplusplus
  18. #define __cplusplus
  19. #endif
  20. #endif
  21.  
  22.  
  23. #ifdef __cplusplus
  24.  
  25. #include <stdlib.h>
  26. #include <unistd.h>
  27.  
  28. /* Use prototypes in function declarations. */
  29. #define YY_USE_PROTOS
  30.  
  31. /* The "const" storage-class-modifier is valid. */
  32. #define YY_USE_CONST
  33.  
  34. #else    /* ! __cplusplus */
  35.  
  36. #if __STDC__
  37.  
  38. #define YY_USE_PROTOS
  39. #define YY_USE_CONST
  40.  
  41. #endif    /* __STDC__ */
  42. #endif    /* ! __cplusplus */
  43.  
  44. #ifdef __TURBOC__
  45.  #pragma warn -rch
  46.  #pragma warn -use
  47. #include <io.h>
  48. #include <stdlib.h>
  49. #define YY_USE_CONST
  50. #define YY_USE_PROTOS
  51. #endif
  52.  
  53. #ifndef YY_USE_CONST
  54. #ifndef const
  55. #define const
  56. #endif
  57. #endif
  58.  
  59.  
  60. #ifdef YY_USE_PROTOS
  61. #define YY_PROTO(proto) proto
  62. #else
  63. #define YY_PROTO(proto) ()
  64. #endif
  65.  
  66. /* Returned upon end-of-file. */
  67. #define YY_NULL 0
  68.  
  69. /* Promotes a possibly negative, possibly signed char to an unsigned
  70.  * integer for use as an array index.  If the signed char is negative,
  71.  * we want to instead treat it as an 8-bit unsigned char, hence the
  72.  * double cast.
  73.  */
  74. #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
  75.  
  76. /* Enter a start condition.  This macro really ought to take a parameter,
  77.  * but we do it the disgusting crufty way forced on us by the ()-less
  78.  * definition of BEGIN.
  79.  */
  80. #define BEGIN yy_start = 1 + 2 *
  81.  
  82. /* Translate the current start state into a value that can be later handed
  83.  * to BEGIN to return to the state.  The YYSTATE alias is for lex
  84.  * compatibility.
  85.  */
  86. #define YY_START ((yy_start - 1) / 2)
  87. #define YYSTATE YY_START
  88.  
  89. /* Action number for EOF rule of a given start state. */
  90. #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  91.  
  92. /* Special action meaning "start processing a new file". */
  93. #define YY_NEW_FILE yyrestart( yyin )
  94.  
  95. #define YY_END_OF_BUFFER_CHAR 0
  96.  
  97. /* Size of default input buffer. */
  98. #define YY_BUF_SIZE 16384
  99.  
  100. typedef struct yy_buffer_state *YY_BUFFER_STATE;
  101.  
  102. extern int yyleng;
  103. extern FILE *yyin, *yyout;
  104.  
  105. #define EOB_ACT_CONTINUE_SCAN 0
  106. #define EOB_ACT_END_OF_FILE 1
  107. #define EOB_ACT_LAST_MATCH 2
  108.  
  109. /* The funky do-while in the following #define is used to turn the definition
  110.  * int a single C statement (which needs a semi-colon terminator).  This
  111.  * avoids problems with code like:
  112.  *
  113.  *     if ( condition_holds )
  114.  *        yyless( 5 );
  115.  *    else
  116.  *        do_something_else();
  117.  *
  118.  * Prior to using the do-while the compiler would get upset at the
  119.  * "else" because it interpreted the "if" statement as being all
  120.  * done when it reached the ';' after the yyless() call.
  121.  */
  122.  
  123. /* Return all but the first 'n' matched characters back to the input stream. */
  124.  
  125. #define yyless(n) \
  126.     do \
  127.         { \
  128.         /* Undo effects of setting up yytext. */ \
  129.         *yy_cp = yy_hold_char; \
  130.         yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
  131.         YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  132.         } \
  133.     while ( 0 )
  134.  
  135. #define unput(c) yyunput( c, yytext_ptr )
  136.  
  137. /* The following is because we cannot portably get our hands on size_t
  138.  * (without autoconf's help, which isn't available because we want
  139.  * flex-generated scanners to compile on their own).
  140.  */
  141. #ifdef __MWERKS__
  142. typedef size_t yy_size_t;
  143. #else
  144. typedef unsigned int yy_size_t;
  145. #endif
  146.  
  147.  
  148. struct yy_buffer_state
  149.     {
  150.     FILE *yy_input_file;
  151.  
  152.     char *yy_ch_buf;        /* input buffer */
  153.     char *yy_buf_pos;        /* current position in input buffer */
  154.  
  155.     /* Size of input buffer in bytes, not including room for EOB
  156.      * characters.
  157.      */
  158.     yy_size_t yy_buf_size;
  159.  
  160.     /* Number of characters read into yy_ch_buf, not including EOB
  161.      * characters.
  162.      */
  163.     int yy_n_chars;
  164.  
  165.     /* Whether we "own" the buffer - i.e., we know we created it,
  166.      * and can realloc() it to grow it, and should free() it to
  167.      * delete it.
  168.      */
  169.     int yy_is_our_buffer;
  170.  
  171.     /* Whether this is an "interactive" input source; if so, and
  172.      * if we're using stdio for input, then we want to use getc()
  173.      * instead of fread(), to make sure we stop fetching input after
  174.      * each newline.
  175.      */
  176.     int yy_is_interactive;
  177.  
  178.     /* Whether we're considered to be at the beginning of a line.
  179.      * If so, '^' rules will be active on the next match, otherwise
  180.      * not.
  181.      */
  182.     int yy_at_bol;
  183.  
  184.     /* Whether to try to fill the input buffer when we reach the
  185.      * end of it.
  186.      */
  187.     int yy_fill_buffer;
  188.  
  189.     int yy_buffer_status;
  190. #define YY_BUFFER_NEW 0
  191. #define YY_BUFFER_NORMAL 1
  192.     /* When an EOF's been seen but there's still some text to process
  193.      * then we mark the buffer as YY_EOF_PENDING, to indicate that we
  194.      * shouldn't try reading from the input source any more.  We might
  195.      * still have a bunch of tokens to match, though, because of
  196.      * possible backing-up.
  197.      *
  198.      * When we actually see the EOF, we change the status to "new"
  199.      * (via yyrestart()), so that the user can continue scanning by
  200.      * just pointing yyin at a new input file.
  201.      */
  202. #define YY_BUFFER_EOF_PENDING 2
  203.     };
  204.  
  205. static YY_BUFFER_STATE yy_current_buffer = 0;
  206.  
  207. /* We provide macros for accessing buffer states in case in the
  208.  * future we want to put the buffer states in a more general
  209.  * "scanner state".
  210.  */
  211. #define YY_CURRENT_BUFFER yy_current_buffer
  212.  
  213.  
  214. /* yy_hold_char holds the character lost when yytext is formed. */
  215. static char yy_hold_char;
  216.  
  217. static int yy_n_chars;        /* number of characters read into yy_ch_buf */
  218.  
  219.  
  220. int yyleng;
  221.  
  222. /* Points to current character in buffer. */
  223. static char *yy_c_buf_p = (char *) 0;
  224. static int yy_init = 1;        /* whether we need to initialize */
  225. static int yy_start = 0;    /* start state number */
  226.  
  227. /* Flag which is used to allow yywrap()'s to do buffer switches
  228.  * instead of setting up a fresh yyin.  A bit of a hack ...
  229.  */
  230. static int yy_did_buffer_switch_on_eof;
  231.  
  232. void yyrestart YY_PROTO(( FILE *input_file ));
  233.  
  234. void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
  235. void yy_load_buffer_state YY_PROTO(( void ));
  236. YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
  237. void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
  238. void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
  239. void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
  240. #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
  241.  
  242. YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
  243. YY_BUFFER_STATE yy_scan_string YY_PROTO(( const char *str ));
  244. YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( const char *bytes, int len ));
  245.  
  246. static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
  247. static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
  248. static void yy_flex_free YY_PROTO(( void * ));
  249.  
  250. #define yy_new_buffer yy_create_buffer
  251.  
  252. #define yy_set_interactive(is_interactive) \
  253.     { \
  254.     if ( ! yy_current_buffer ) \
  255.         yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
  256.     yy_current_buffer->yy_is_interactive = is_interactive; \
  257.     }
  258.  
  259. #define yy_set_bol(at_bol) \
  260.     { \
  261.     if ( ! yy_current_buffer ) \
  262.         yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
  263.     yy_current_buffer->yy_at_bol = at_bol; \
  264.     }
  265.  
  266. #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
  267.  
  268. typedef unsigned char YY_CHAR;
  269. FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
  270. typedef int yy_state_type;
  271. extern char *yytext;
  272. #define yytext_ptr yytext
  273.  
  274. #ifndef YY_SKIP_YYWRAP
  275. #ifdef __cplusplus
  276. extern "C" int yywrap YY_PROTO(( void ));
  277. #else
  278. extern int yywrap YY_PROTO(( void ));
  279. #endif
  280. #endif
  281.  
  282. #ifndef YY_NO_UNPUT
  283. static void yyunput YY_PROTO(( int c, char *buf_ptr ));
  284. #endif
  285.  
  286. #ifndef yytext_ptr
  287. static void yy_flex_strncpy YY_PROTO(( char *, const char *, int ));
  288. #endif
  289.  
  290. #ifndef YY_NO_INPUT
  291. #ifdef __cplusplus
  292. static int yyinput YY_PROTO(( void ));
  293. #else
  294. static int input YY_PROTO(( void ));
  295. #endif
  296. #endif
  297.  
  298. static yy_state_type yy_get_previous_state YY_PROTO(( void ));
  299. static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
  300. static int yy_get_next_buffer YY_PROTO(( void ));
  301. static void yy_fatal_error YY_PROTO(( const char msg[] ));
  302.  
  303. /* Done after the current pattern has been matched and before the
  304.  * corresponding action - sets up yytext.
  305.  */
  306. #define YY_DO_BEFORE_ACTION \
  307.     yytext_ptr = yy_bp; \
  308.     yyleng = (int) (yy_cp - yy_bp); \
  309.     yy_hold_char = *yy_cp; \
  310.     *yy_cp = '\0'; \
  311.     yy_c_buf_p = yy_cp;
  312.  
  313. #define YY_NUM_RULES 165
  314. #define YY_END_OF_BUFFER 166
  315. static const short int yy_accept[769] =
  316.     {   0,
  317.         0,    0,    0,    0,   87,   87,  163,  163,    0,    0,
  318.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  319.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  320.         0,    0,    0,    0,    0,    0,    0,    0,  166,  164,
  321.         7,   18,  164,   16,    1,   17,  164,  164,  164,  164,
  322.        15,  108,  100,  101,  108,   93,  108,  107,  108,  108,
  323.       108,  107,   99,   89,  108,  108,   91,   92,   87,   88,
  324.        87,   86,   85,   86,   86,  163,  163,   28,   29,   28,
  325.        28,   28,   28,   28,   28,   31,   30,   32,   31,  113,
  326.       109,  110,  112,  114,  141,  142,  141,  139,  138,  140,
  327.  
  328.       115,  117,  115,  116,  115,  120,  120,  120,  120,  122,
  329.       124,  122,  122,  122,  122,  123,  151,  155,  151,  154,
  330.       156,  156,  152,  152,  152,  149,  150,  164,   82,  164,
  331.        21,   22,   21,   20,  157,  159,  157,  160,  161,  147,
  332.       147,  148,  147,  147,  147,  147,  147,  147,  147,   81,
  333.        34,   33,   81,   81,   81,   81,   35,   81,   81,   81,
  334.        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
  335.        81,   81,   81,   81,   81,   81,   26,   23,   26,   24,
  336.         7,   18,    0,   16,    1,   17,    0,    0,    0,   14,
  337.         8,    0,    0,    0,    0,    4,    5,    0,    2,   15,
  338.  
  339.       100,  101,    0,    0,    0,   95,    0,    0,  105,  105,
  340.         0,  162,  162,  162,   94,    0,   99,   89,    0,    0,
  341.         0,   91,   92,  104,   90,    0,   87,   88,   86,   85,
  342.        85,   83,   84,  163,  163,   28,   29,   28,   28,   28,
  343.        28,   31,   30,   32,  111,  112,  142,  138,  117,    0,
  344.       118,  119,  124,  121,  151,  155,    0,  153,    0,  144,
  345.       152,  152,  152,    0,   82,    0,   21,   22,   21,   19,
  346.       157,  159,  158,  147,  147,  147,  148,  143,  147,  147,
  347.       147,   34,   33,    0,   80,    0,    0,   81,   81,   81,
  348.        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
  349.  
  350.        81,   81,   81,   36,   81,   81,   81,   81,   81,   81,
  351.        81,   81,   81,   81,    0,   25,   24,    0,   14,    8,
  352.         0,   12,    0,    0,    0,    0,    0,    4,    5,    0,
  353.         6,    0,   96,    0,   97,    0,    0,  105,  105,    0,
  354.       105,  105,  105,  162,  162,    0,  106,   90,   98,    0,
  355.       104,    0,   83,   84,   28,   28,   28,   27,   28,    0,
  356.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  357.         0,  152,  152,  143,  143,  147,  147,    0,    0,   81,
  358.        81,   81,   81,   81,   44,   81,   81,   81,   49,   81,
  359.        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
  360.  
  361.        81,   81,   81,   81,   81,   81,   81,   81,    0,   81,
  362.        81,   81,   81,    0,    0,    0,   12,    0,    0,    0,
  363.         0,    0,    0,    4,    5,    0,  105,  105,  105,  105,
  364.       105,  105,  162,    0,    0,   28,   28,    0,    0,    0,
  365.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  366.       152,  152,  147,  147,   37,   38,   81,   81,   81,   81,
  367.        81,   81,   81,   81,   50,   51,   81,   81,   81,   55,
  368.        81,   81,   81,   81,   81,   81,   60,   81,   81,   81,
  369.        81,   81,   81,   67,    0,    0,    0,   81,   81,   81,
  370.        81,    0,   13,    0,    0,    0,    0,    0,    0,  105,
  371.  
  372.       105,  105,  105,  105,  105,    0,    0,   28,   28,  137,
  373.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  374.         0,    0,  152,  152,  147,  147,   39,   81,   41,   81,
  375.        43,   81,   81,   81,   47,   81,   52,   81,   81,   81,
  376.        81,   81,   81,   81,   81,   81,   62,   81,   81,   65,
  377.        81,    0,    0,    0,    0,   81,   81,   81,   81,    3,
  378.         0,    0,    0,    0,  105,  105,  105,    0,    0,   28,
  379.        28,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  380.         0,    0,    0,  145,  146,  145,  146,   81,   42,   81,
  381.        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
  382.  
  383.        81,   78,   61,   81,   64,   81,    0,    0,    0,    0,
  384.        81,   81,   69,   70,    0,   10,    0,   11,    0,  103,
  385.         0,  102,    0,    0,    0,    0,    0,    0,    0,    0,
  386.         0,    0,    0,    0,   81,   81,   81,   45,   81,   48,
  387.        81,   81,   81,   81,   77,   81,   59,   63,   66,    0,
  388.         0,    0,    0,   79,   81,    0,  102,    0,    0,    0,
  389.         0,    0,    0,    0,    0,    0,    0,    0,    0,   81,
  390.        81,   81,   46,   81,   81,   56,   81,   81,    0,    0,
  391.         0,    0,   68,    0,    9,    0,  125,  126,  127,  128,
  392.       129,  130,  131,  132,  133,  134,  135,    0,   81,   81,
  393.  
  394.        81,   81,   81,   81,   81,    0,    0,    0,    0,    0,
  395.       136,   81,   81,   81,   81,   54,   81,   81,    0,    0,
  396.         0,    0,    0,    0,   81,   81,   81,   53,   81,   58,
  397.         0,    0,    0,    0,    0,    0,   81,   81,   81,   81,
  398.        72,    0,    0,    0,    0,   73,   81,   81,   81,   81,
  399.        71,    0,   75,    0,   81,   81,   81,   74,   76,   81,
  400.        81,   81,   81,   81,   81,   57,   40,    0
  401.     } ;
  402.  
  403. static const int yy_ec[256] =
  404.     {   0,
  405.         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  406.         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
  407.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  408.         1,    2,    1,    5,    6,    7,    8,    1,    9,   10,
  409.        10,   11,   12,   13,   14,   10,   15,   16,   16,   16,
  410.        16,   16,   16,   16,   17,   18,   16,   19,    1,   20,
  411.        21,   22,   10,    1,   30,   31,   32,   33,   34,   35,
  412.        36,   37,   38,   39,   40,   41,   42,   43,   44,   45,
  413.        46,   47,   48,   49,   50,   51,   52,   53,   54,   46,
  414.        25,   26,   27,   28,   29,    1,   30,   31,   32,   33,
  415.  
  416.        34,   35,   36,   37,   38,   39,   40,   41,   42,   43,
  417.        44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
  418.        54,   46,   55,   56,   57,    1,    1,    1,    1,    1,
  419.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  420.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  421.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  422.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  423.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  424.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  425.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  426.  
  427.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  428.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  429.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  430.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  431.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  432.         1,    1,    1,    1,    1
  433.     } ;
  434.  
  435. static const int yy_meta[58] =
  436.     {   0,
  437.         1,    1,    2,    1,    3,    1,    1,    1,    4,    1,
  438.         5,    6,    1,    7,    4,    8,    8,    8,    1,    1,
  439.         1,    1,    9,   10,    1,   11,   12,    1,   13,   14,
  440.        14,   14,   14,   14,   14,   15,   15,   15,   15,   15,
  441.        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
  442.        15,   15,   15,   15,    4,    1,   16
  443.     } ;
  444.  
  445. static const short int yy_base[857] =
  446.     {   0,
  447.         0,   57,  113,  169,  118,  127, 2676, 2675,  226, 2669,
  448.       138,  141,  283,    0, 2648, 2647,  133,  144,  149,  160,
  449.       179,  184,  188,  338,  365,    0,  123,  152,  155,  195,
  450.       420,  423,  449,    0,  506,    0,  340,  343, 2674, 2680,
  451.       214, 2680, 2670,    0,  217, 2680, 2669,  181,  556, 2660,
  452.         0, 2680,  563, 2680, 2667, 2680,  347, 2680, 2649,  328,
  453.       552,  413,  574, 2680, 2665,  565, 2647, 2680,    0, 2680,
  454.      2663,    0, 2663, 2661,   77, 2660, 2680,    0, 2680, 2659,
  455.      2680,    0, 2627, 2606, 2602,    0, 2656, 2680, 2654, 2680,
  456.      2680, 2628,    0, 2680, 2680, 2680, 2652, 2680,  416, 2680,
  457.  
  458.      2680, 2680, 2651, 2680,  563, 2680, 2634,  575,  421, 2680,
  459.      2680, 2649,    0, 2632,  590, 2680,    0, 2680, 2647, 2680,
  460.       586, 2638,    0, 2614, 2593, 2680, 2680,  433, 2680,  435,
  461.       437, 2680,  439, 2631,    0, 2680, 2642, 2680,    0,    0,
  462.       613, 2680, 2641, 2586, 2680, 2631,    0, 2607, 2586, 2680,
  463.      2637, 2680, 2635, 2632, 2605, 2604, 2680,  576, 2604,  155,
  464.      2599, 2600,  158,    0, 2588, 2596,  166,  159, 2579,  540,
  465.      2594, 2578, 2583, 2591, 2594, 2569, 2680, 2680, 2617,  608,
  466.       629, 2680, 2618,    0,  632, 2680, 2617,  573, 2581,    0,
  467.         0,  635,  638,  642,  645,    0,    0,  441, 2680,    0,
  468.  
  469.       662, 2680, 2615, 2562,  594, 2680, 2613, 2581,  642,  650,
  470.       655, 2680,  661,    0, 2680, 2557,  682, 2680, 2610, 2557,
  471.      2600, 2590, 2680,    0, 2680, 2575,    0, 2680,    0,    0,
  472.      2606,    0,    0, 2604, 2680,    0, 2680,    0, 2567, 2563,
  473.       738,    0, 2602, 2680, 2680,    0, 2680,  675, 2680,  766,
  474.      2680, 2680, 2680, 2680,    0, 2680,  601, 2680,    0, 2680,
  475.         0, 2564, 2560,  677, 2680,  691,  695, 2680,  697, 2680,
  476.         0, 2680, 2680,    0,  701, 2544, 2680,  819,    0, 2561,
  477.      2557, 2596, 2680, 2592, 2680, 2558, 2557,    0,  636, 2547,
  478.       664, 2581, 2544,  587, 2543, 2542, 2548,  662, 2535, 2549,
  479.  
  480.      2537,    0, 2534, 2680, 2535, 2536, 2544, 2547,  675,  314,
  481.      2535, 2532, 2531,  683, 2572, 2680,  703, 2533,    0,    0,
  482.       875, 2680, 2572,  878, 2527, 2524, 2534,    0,    0,  713,
  483.      2680,  719, 2680,  723, 2680,  725, 2527,  705,  784,  870,
  484.       923,  882,  965,  716,    0, 2513, 2680, 2680, 2680, 2535,
  485.         0, 2524,    0,    0, 2533, 2522,    0, 2680,    0, 1000,
  486.      2546,  781,  864,  866,  865,  566,  870,  871,  638,  966,
  487.       782, 2530, 2519,    0, 1057, 2528, 2517, 2511, 2510, 2522,
  488.      2527, 2526, 2515, 2522,    0, 2519, 2502, 2521,    0, 2501,
  489.      2508, 2498, 2513, 2532, 2502, 2514, 2509, 2507, 2506, 2497,
  490.  
  491.      2504, 2505, 2503, 2504,  768, 2485, 2503, 2490,  867, 2491,
  492.      2493, 2486, 2482, 2494,  733, 1027, 2680,  801, 1030,  990,
  493.      2497, 2488, 2482,    0,    0, 2489, 1092, 1024, 1131, 2504,
  494.      1070, 1151, 2680, 2478, 2486, 2488, 2472,    0, 2491, 1049,
  495.       553,  901,  883,  887,  159,  965, 1017,  892, 1035, 1062,
  496.      2485, 2469, 2483, 2467, 2680, 2680, 2470, 2458, 2457, 2460,
  497.      2472, 1076, 2472, 2457,    0,    0, 2457, 2458, 2472,    0,
  498.      2489, 2455, 2463, 2486, 2450, 2460,    0, 2465, 2456, 2452,
  499.      2444, 2444, 2448,    0,  860, 2459, 2446, 2459, 2445, 2440,
  500.      2456, 2483, 2680,  814, 1035, 2430, 2439, 2433, 2459, 2461,
  501.  
  502.      1081, 1171, 1026,  961,  998, 2444, 2456, 2428, 2442, 2680,
  503.      1070, 1072, 1132, 1074, 1133, 1131, 1084, 1134,  894, 1138,
  504.      1085, 1136, 2426, 2440, 2424, 2438,    0, 2423,    0, 2425,
  505.         0, 1142, 2419, 2434,    0, 2426,    0, 2436, 2421, 2430,
  506.      2403, 2370, 2363, 2370, 2350, 2353,    0, 2363, 2345,    0,
  507.      2336, 2302, 2298, 2308, 2292, 2254, 2252, 2236, 2221, 2263,
  508.      1098, 2221, 2227, 2222, 1133, 1153, 1166, 2217, 2216,    0,
  509.         0, 1154, 1178,  610, 1174, 1176, 1179, 1180, 1181, 1188,
  510.      1190, 1191, 1193,    0,    0,    0,    0, 2218,    0, 2188,
  511.      2196, 2186, 2178, 2173, 2187, 2170, 2172, 2165, 2156, 2132,
  512.  
  513.      2118,    0,    0, 2097,    0, 2108, 2112, 2099, 2092, 2105,
  514.      2082, 2086,    0,    0, 1210, 2680, 1214, 2680, 2081, 2680,
  515.      2100, 2680, 2102, 2083, 2078, 2077, 2071, 2070, 2069, 2066,
  516.      2065, 2061, 2058, 1192, 2007, 1981, 1970,    0, 1949,    0,
  517.      1932, 1920, 1911, 1915,    0, 1907,    0,    0,    0, 1903,
  518.      1921, 1920, 1894,    0, 1888, 1216, 2680, 1868, 1867, 1861,
  519.      1860, 1843, 1827, 1811, 1807, 1806, 1805, 1802, 1793, 1764,
  520.      1772, 1752,    0, 1761, 1768,    0, 1746, 1750, 1741, 1739,
  521.      1191, 1722,    0, 1225, 2680, 1229, 2680, 2680, 2680, 2680,
  522.      2680, 2680, 2680, 2680, 2680, 2680, 2680, 1737, 1707, 1712,
  523.  
  524.      1704, 1667, 1668, 1664, 1647, 1663, 1639, 1186, 1638, 1656,
  525.      2680, 1646, 1622, 1605, 1615,    0, 1601, 1580, 1575, 1593,
  526.      1582, 1567, 1568, 1563, 1564, 1569, 1566,    0, 1542,    0,
  527.      1522, 1491, 1500, 1500, 1478, 1466, 1465, 1445, 1420, 1438,
  528.      2680, 1192, 1189, 1173, 1113, 2680, 1078, 1070, 1071,  986,
  529.      2680,  942, 2680,  865,  764,  757,  668, 2680, 2680,  666,
  530.       413,  311,  304,  189,   85,    0,    0, 2680, 1241, 1257,
  531.      1273, 1289, 1305, 1321, 1337, 1353, 1369, 1385, 1401, 1417,
  532.      1433, 1449, 1459, 1474, 1483, 1498, 1514, 1523, 1538, 1554,
  533.      1570, 1586, 1602, 1612, 1627, 1637, 1652, 1668, 1684, 1696,
  534.  
  535.      1706, 1721, 1737, 1753, 1769, 1785, 1795, 1810, 1821, 1220,
  536.      1836, 1852, 1868, 1876, 1883, 1898, 1914, 1930, 1939, 1947,
  537.      1963, 1979, 1995, 2011, 2027, 2043, 2059, 2075, 2085, 2100,
  538.      2110, 2117, 2132, 2144, 2154, 2169, 2185, 2201, 2217, 2227,
  539.      2242, 2253, 2268, 2284, 2300, 2316, 2326, 2335, 2350, 2366,
  540.      2382, 2391, 2399, 2415, 2431, 2447
  541.     } ;
  542.  
  543. static const short int yy_def[857] =
  544.     {   0,
  545.       768,  768,  769,  769,  770,  771,  772,  772,  768,    9,
  546.       773,  773,  768,   13,  774,  774,  775,  775,  776,  776,
  547.       777,  777,  778,  778,  768,   25,  779,  779,  780,  780,
  548.       781,  781,  768,   33,  768,   35,  782,  782,  768,  768,
  549.       768,  768,  768,  783,  768,  768,  768,  768,  784,  768,
  550.       785,  768,  768,  768,  768,  768,  768,  768,  768,  786,
  551.       787,  788,  768,  768,  768,  768,  768,  768,  789,  768,
  552.       789,  790,  791,  790,  790,  792,  768,  793,  768,  793,
  553.       768,  794,  794,  794,  793,  795,  768,  768,  795,  768,
  554.       768,  768,  796,  768,  768,  768,  768,  768,  768,  768,
  555.  
  556.       768,  768,  768,  768,  787,  768,  768,  787,  797,  768,
  557.       768,  768,  798,  768,  787,  768,  799,  768,  799,  768,
  558.       800,  768,  801,  801,  801,  768,  768,  802,  768,  802,
  559.       803,  768,  803,  768,  804,  768,  804,  768,  805,  806,
  560.       806,  768,  806,  806,  768,  806,  807,  807,  807,  768,
  561.       768,  768,  768,  808,  768,  768,  768,  809,  809,  809,
  562.       809,  809,  809,  809,  809,  809,  809,  810,  809,  809,
  563.       809,  809,  809,  809,  809,  809,  768,  768,  811,  768,
  564.       768,  768,  768,  783,  768,  768,  768,  768,  768,  812,
  565.       813,  768,  768,  768,  768,  814,  815,  816,  768,  785,
  566.  
  567.       768,  768,  768,  768,  817,  768,  768,  768,  818,  818,
  568.       786,  768,  768,  819,  768,  820,  768,  768,  768,  768,
  569.       768,  768,  768,  821,  768,  768,  822,  768,  823,  824,
  570.       824,  825,  826,  827,  768,  828,  768,  829,  829,  829,
  571.       768,  830,  768,  768,  768,  831,  768,  768,  768,  832,
  572.       768,  768,  768,  768,  833,  768,  834,  768,  834,  768,
  573.       835,  835,  835,  836,  768,  836,  837,  768,  837,  768,
  574.       838,  768,  768,  839,  839,  839,  768,  768,  840,  840,
  575.       840,  768,  768,  841,  768,  768,  768,  842,  842,  842,
  576.       842,  842,  842,  842,  842,  842,  842,  842,  842,  842,
  577.  
  578.       842,  842,  842,  768,  842,  842,  842,  842,  842,  842,
  579.       842,  842,  842,  842,  843,  768,  768,  768,  844,  845,
  580.       846,  768,  768,  768,  768,  768,  768,  847,  848,  849,
  581.       768,  849,  768,  850,  768,  850,  768,  851,  851,  851,
  582.       768,  851,  851,  768,  852,  853,  768,  768,  768,  768,
  583.       854,  768,  825,  826,  829,  829,  241,  768,  241,  241,
  584.       832,  832,  832,  832,  832,  832,  832,  832,  832,  832,
  585.       832,  835,  835,  278,  278,  840,  840,  768,  768,  842,
  586.       842,  842,  842,  842,  842,  842,  842,  842,  842,  842,
  587.       842,  842,  842,  842,  842,  842,  842,  842,  842,  842,
  588.  
  589.       842,  842,  842,  842,  842,  842,  842,  842,  768,  842,
  590.       842,  842,  842,  768,  846,  846,  768,  846,  846,  768,
  591.       768,  768,  768,  847,  848,  768,  341,  851,  343,  341,
  592.       851,  343,  768,  768,  768,  829,  829,  360,  768,  832,
  593.       832,  832,  832,  832,  832,  832,  832,  832,  832,  832,
  594.       835,  835,  840,  840,  768,  768,  842,  842,  842,  842,
  595.       842,  842,  842,  842,  842,  842,  842,  842,  842,  842,
  596.       842,  842,  842,  842,  842,  842,  842,  842,  842,  842,
  597.       842,  842,  842,  842,  768,  768,  768,  842,  842,  842,
  598.       842,  768,  768,  846,  846,  768,  768,  768,  768,  427,
  599.  
  600.       851,  343,  851,  851,  851,  768,  768,  829,  829,  768,
  601.       832,  832,  832,  832,  832,  832,  832,  832,  832,  832,
  602.       832,  832,  835,  835,  840,  840,  842,  842,  842,  842,
  603.       842,  842,  842,  842,  842,  842,  842,  842,  842,  842,
  604.       842,  842,  842,  842,  842,  842,  842,  842,  842,  842,
  605.       842,  768,  768,  768,  768,  842,  842,  842,  842,  768,
  606.       855,  768,  768,  768,  851,  851,  851,  768,  768,  829,
  607.       829,  832,  832,  832,  832,  832,  832,  832,  832,  832,
  608.       832,  832,  832,  835,  835,  840,  840,  842,  842,  842,
  609.       842,  842,  842,  842,  842,  842,  842,  842,  842,  842,
  610.  
  611.       842,  842,  842,  842,  842,  842,  768,  768,  768,  768,
  612.       842,  842,  842,  842,  855,  768,  855,  768,  768,  768,
  613.       768,  768,  832,  832,  832,  832,  832,  832,  832,  832,
  614.       832,  832,  832,  832,  842,  842,  842,  842,  842,  842,
  615.       842,  842,  842,  842,  842,  842,  842,  842,  842,  768,
  616.       768,  768,  768,  842,  842,  856,  768,  768,  768,  768,
  617.       768,  768,  768,  768,  768,  768,  768,  768,  832,  842,
  618.       842,  842,  842,  842,  842,  842,  842,  842,  768,  768,
  619.       768,  768,  842,  856,  768,  856,  768,  768,  768,  768,
  620.       768,  768,  768,  768,  768,  768,  768,  768,  842,  842,
  621.  
  622.       842,  842,  842,  842,  842,  768,  768,  768,  768,  768,
  623.       768,  842,  842,  842,  842,  842,  842,  842,  768,  768,
  624.       768,  768,  768,  768,  842,  842,  842,  842,  842,  842,
  625.       768,  768,  768,  768,  768,  768,  842,  842,  842,  842,
  626.       768,  768,  768,  768,  768,  768,  842,  842,  842,  842,
  627.       768,  768,  768,  768,  842,  842,  842,  768,  768,  842,
  628.       842,  842,  842,  842,  842,  842,  842,    0,  768,  768,
  629.       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
  630.       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
  631.       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
  632.  
  633.       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
  634.       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
  635.       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
  636.       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
  637.       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
  638.       768,  768,  768,  768,  768,  768
  639.     } ;
  640.  
  641. static const short int yy_nxt[2738] =
  642.     {   0,
  643.        40,   41,   42,   43,   40,   40,   40,   40,   40,   40,
  644.        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
  645.        40,   40,   44,   44,   40,   40,   40,   40,   44,   44,
  646.        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
  647.        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
  648.        44,   44,   44,   44,   40,   40,   40,   40,   45,   46,
  649.        47,   40,   48,   40,   49,   40,   40,   40,   40,   40,
  650.        40,   50,   40,   40,   40,   40,   40,   40,   40,   51,
  651.        51,   40,   40,   40,   40,   51,   51,   51,   51,   51,
  652.        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
  653.  
  654.        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
  655.        51,   40,   40,   40,   53,   54,   55,   56,  767,   57,
  656.        70,   71,   58,   58,   58,  129,  130,   58,   73,   70,
  657.        74,  232,   59,  233,   75,   96,   97,   60,   61,   87,
  658.        88,   89,   87,   88,   89,   98,   96,   97,   99,   99,
  659.        99,  102,  103,  104,  129,  130,   98,  132,  133,   99,
  660.        99,   99,  102,  103,  104,  134,  292,   62,   58,   58,
  661.        63,   64,   65,   56,  105,   57,   66,  439,   58,   58,
  662.        58,   40,  188,   58,  293,  105,   40,  296,   67,  100,
  663.       111,  112,  303,   60,   61,  300,   68,  132,  133,  301,
  664.  
  665.       100,  113,  304,  107,  108,  134,  109,  297,  107,  108,
  666.       517,  109,  114,  115,  116,  181,  182,  183,  185,  186,
  667.       187,  189,  766,   62,   58,   58,   78,   78,   79,   80,
  668.        78,   78,   78,   78,   78,   78,   81,   78,   78,   78,
  669.        78,   78,   78,   78,   78,   78,   78,   78,   82,   82,
  670.        78,   78,   78,   78,   82,   82,   82,   82,   82,   82,
  671.        82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
  672.        82,   82,   83,   82,   82,   82,   82,   82,   82,   84,
  673.        78,   78,   78,   90,   90,   40,   90,   90,   90,   90,
  674.        90,   90,   90,   91,   90,   91,   90,   90,   90,   90,
  675.  
  676.        90,   90,   90,   90,   92,   93,   93,   90,   90,   90,
  677.        90,   93,   93,   93,   93,   93,   93,   93,   93,   93,
  678.        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
  679.        93,   93,   93,   93,   93,   93,   93,   90,   90,   90,
  680.       111,  112,  178,  404,  179,  178,  405,  179,  206,  206,
  681.       207,  113,  210,  211,  765,  180,  180,  180,  180,  180,
  682.       180,  764,  114,  115,  116,  117,  117,  118,  119,  120,
  683.       117,  117,  117,  121,  117,  117,  117,  117,  117,  122,
  684.       117,  117,  117,  117,  117,  117,  117,  123,  123,  117,
  685.       117,  117,  117,  123,  123,  123,  123,  123,  123,  123,
  686.  
  687.       123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
  688.       123,  124,  123,  123,  123,  123,  123,  123,  125,  126,
  689.       117,  127,  136,  137,  138,  136,  137,  138,  215,  215,
  690.       215,  248,  248,  248,  252,  265,  266,  265,  266,  268,
  691.       269,  268,  269,  331,  332,  139,  673,  252,  139,  140,
  692.       141,  142,  143,  140,  140,  140,  144,  140,  140,  145,
  693.       140,  140,  140,  146,  140,  140,  140,  140,  140,  140,
  694.       140,  147,  147,  140,  140,  140,  140,  147,  147,  147,
  695.       147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
  696.       147,  147,  147,  147,  147,  148,  147,  147,  147,  147,
  697.  
  698.       147,  147,  149,  140,  140,  140,  150,  151,  152,  153,
  699.       154,  150,  150,  150,  150,  150,  150,  150,  150,  150,
  700.       150,  150,  155,  156,  150,  150,  157,  150,  150,  150,
  701.       150,  150,  150,  150,  150,  158,  159,  160,  161,  162,
  702.       163,  164,  164,  165,  164,  164,  166,  167,  168,  169,
  703.       170,  164,  171,  172,  164,  173,  174,  175,  164,  176,
  704.       150,  150,  150,  191,  201,  202,  203,  213,  213,  213,
  705.       204,  439,  224,  306,  188,  217,  218,  219,  213,  213,
  706.       213,  220,  513,  307,  439,  192,  308,  193,  221,  193,
  707.       213,  213,  213,  222,  258,  193,  335,  336,  193,  194,
  708.  
  709.       195,  223,  193,  196,  214,  213,  213,  213,  197,  258,
  710.       198,  259,  444,  189,  275,  214,  289,  387,  205,  225,
  711.       276,  388,  290,  317,  317,  317,  259,  214,  439,  205,
  712.       181,  182,  183,  185,  186,  187,  321,  322,  323,  321,
  713.       322,  323,  214,  321,  322,  323,  321,  322,  323,  625,
  714.       324,  324,  324,  324,  324,  324,  439,  324,  324,  324,
  715.       324,  324,  324,  201,  202,  203,  339,  340,  341,  204,
  716.       342,  342,  342,  380,  339,  340,  344,  344,  344,  265,
  717.       266,  325,  448,  217,  218,  219,  326,  381,  327,  220,
  718.       248,  248,  248,  265,  266,  383,  221,  268,  269,  268,
  719.  
  720.       269,  222,  275,  763,  402,  762,  392,  343,  276,  223,
  721.       393,  409,  384,  403,  410,  331,  332,  205,  317,  317,
  722.       317,  331,  332,  411,  412,  335,  336,  335,  336,  339,
  723.       340,  212,  212,  212,  413,  493,  494,  205,  357,  357,
  724.       358,  359,  357,  357,  357,  357,  357,  357,  360,  357,
  725.       357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
  726.       360,  360,  357,  357,  357,  357,  360,  360,  360,  360,
  727.       360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
  728.       360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
  729.       360,  360,  357,  357,  357,  362,  363,  364,  365,  439,
  730.  
  731.       439,  366,  427,  417,  494,  480,  367,  761,  339,  340,
  732.       368,  481,  760,  369,  450,  370,  493,  494,  371,  374,
  733.       374,  440,  374,  374,  374,  374,  374,  374,  374,  375,
  734.       374,  374,  374,  374,  374,  374,  374,  374,  374,  374,
  735.       374,  375,  375,  374,  374,  374,  374,  375,  375,  375,
  736.       375,  375,  375,  375,  375,  375,  375,  375,  375,  375,
  737.       375,  375,  375,  375,  375,  375,  375,  375,  375,  375,
  738.       375,  375,  375,  374,  374,  374,  416,  417,  418,  420,
  739.       322,  323,  439,  439,  439,  428,  428,  428,  439,  439,
  740.       419,  419,  419,  324,  324,  324,  338,  431,  431,  431,
  741.  
  742.       759,  439,  443,  552,  441,  439,  339,  340,  442,  553,
  743.       439,  485,  439,  445,  486,  487,  516,  446,  515,  439,
  744.       447,  520,  429,  338,  338,  580,  338,  338,  338,  338,
  745.       338,  338,  338,  338,  338,  338,  338,  338,  338,  338,
  746.       338,  338,  338,  338,  338,  430,  430,  339,  340,  514,
  747.       338,  338,  430,  430,  430,  430,  430,  430,  430,  430,
  748.       430,  430,  430,  430,  430,  430,  430,  430,  430,  430,
  749.       430,  430,  430,  430,  430,  430,  430,  338,  338,  338,
  750.       432,  432,  432,  439,  439,  339,  340,  432,  758,  339,
  751.       340,  420,  322,  323,  432,  432,  432,  432,  432,  432,
  752.  
  753.       360,  360,  518,  438,  360,  360,  360,  360,  360,  360,
  754.       449,  360,  360,  360,  360,  360,  360,  360,  360,  360,
  755.       360,  360,  339,  340,  360,  360,  360,  360,  416,  417,
  756.       418,  495,  417,  418,  757,  439,  495,  417,  418,  501,
  757.       501,  501,  419,  419,  419,  419,  419,  419,  339,  340,
  758.       339,  340,  209,  439,  360,  360,  360,  375,  375,  519,
  759.       375,  375,  375,  375,  375,  375,  375,  439,  375,  375,
  760.       375,  375,  375,  375,  375,  375,  375,  375,  375,  521,
  761.       439,  375,  375,  375,  375,  504,  504,  504,  439,  532,
  762.       439,  511,  439,  512,  339,  340,  566,  566,  566,  522,
  763.  
  764.       616,  617,  439,  439,  638,  339,  340,  756,  573,  755,
  765.       533,  375,  375,  375,  500,  500,  534,  578,  582,  572,
  766.       575,  500,  500,  500,  500,  500,  500,  500,  500,  500,
  767.       500,  500,  500,  500,  500,  500,  500,  500,  500,  500,
  768.       500,  500,  500,  500,  500,  500,  502,  502,  502,  439,
  769.       439,  439,  439,  502,  439,  754,  439,  339,  340,  338,
  770.       502,  502,  502,  502,  502,  502,  505,  505,  505,  581,
  771.       576,  583,  439,  505,  574,  577,  579,  339,  340,  590,
  772.       505,  505,  505,  505,  505,  505,  567,  567,  567,  591,
  773.       339,  340,  439,  567,  439,  623,  439,  439,  439,  439,
  774.  
  775.       567,  567,  567,  567,  567,  567,  439,  624,  439,  439,
  776.       439,  439,  616,  617,  626,  628,  616,  617,  685,  686,
  777.       753,  708,  752,  632,  627,  751,  629,  685,  686,  630,
  778.       634,  685,  686,  302,  302,  721,  631,  633,  709,  722,
  779.       669,   52,   52,   52,   52,   52,   52,   52,   52,   52,
  780.        52,   52,   52,   52,   52,   52,   52,   69,   69,   69,
  781.        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
  782.        69,   69,   69,   72,   72,   72,   72,   72,   72,   72,
  783.        72,   72,   72,   72,   72,   72,   72,   72,   72,   76,
  784.        76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
  785.  
  786.        76,   76,   76,   76,   76,   86,   86,   86,   86,   86,
  787.        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
  788.        86,   40,   40,   40,   40,   40,   40,   40,   40,   40,
  789.        40,   40,   40,   40,   40,   40,   40,   95,   95,   95,
  790.        95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
  791.        95,   95,   95,  101,  101,  101,  101,  101,  101,  101,
  792.       101,  101,  101,  101,  101,  101,  101,  101,  101,  106,
  793.       106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
  794.       106,  106,  106,  106,  106,  110,  110,  110,  110,  110,
  795.       110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
  796.  
  797.       110,  128,  128,  128,  128,  128,  128,  128,  128,  128,
  798.       128,  128,  128,  128,  128,  128,  128,  131,  131,  131,
  799.       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
  800.       131,  131,  131,  135,  135,  135,  135,  135,  135,  135,
  801.       135,  135,  135,  135,  135,  135,  135,  135,  135,  177,
  802.       177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
  803.       177,  177,  177,  177,  177,  184,  184,  184,  184,  750,
  804.       749,  184,  184,  184,  190,  190,  190,  190,  190,  190,
  805.       190,  190,  190,  190,  190,  190,  190,  190,  190,  200,
  806.       200,  200,  200,  748,  747,  200,  200,  200,  209,  746,
  807.  
  808.       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
  809.       209,  209,  209,  209,  212,  745,  212,  212,  212,  212,
  810.       212,  212,  212,  212,  212,  212,  212,  212,  212,  212,
  811.       216,  216,  216,  744,  743,  216,  216,  216,  227,  742,
  812.       227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
  813.       227,  227,  227,  227,  229,  741,  229,  229,  229,  229,
  814.       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
  815.       230,  740,  230,  230,  230,  230,  230,  230,  230,  230,
  816.       230,  230,  230,  230,  230,  230,  234,  234,  234,  234,
  817.       234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
  818.  
  819.       234,  234,  236,  739,  236,  236,  738,  236,  236,  236,
  820.       737,  736,  236,  236,  735,  734,  733,  236,  238,  238,
  821.       238,  238,  732,  731,  238,  238,  238,  242,  730,  242,
  822.       242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
  823.       242,  242,  242,  246,  246,  246,  246,  729,  728,  246,
  824.       246,  246,  251,  727,  251,  251,  251,  251,  251,  251,
  825.       251,  251,  251,  251,  251,  251,  251,  251,  254,  726,
  826.       254,  254,  254,  254,  254,  254,  254,  254,  254,  725,
  827.       254,  254,  254,  254,  255,  724,  723,  720,  255,  255,
  828.       255,  255,  719,  718,  255,  255,  257,  717,  257,  257,
  829.  
  830.       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
  831.       257,  257,  261,  261,  261,  261,  716,  715,  261,  261,
  832.       261,  264,  264,  264,  264,  264,  264,  264,  264,  264,
  833.       264,  264,  264,  264,  264,  264,  264,  267,  267,  267,
  834.       267,  714,  267,  267,  267,  267,  267,  267,  267,  267,
  835.       267,  267,  267,  271,  713,  712,  271,  271,  271,  271,
  836.       271,  271,  271,  711,  271,  271,  271,  271,  271,  273,
  837.       710,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  838.       273,  273,  273,  273,  273,  274,  707,  274,  274,  706,
  839.       274,  274,  274,  705,  704,  274,  274,  703,  702,  701,
  840.  
  841.       274,  279,  279,  279,  279,  700,  699,  279,  279,  279,
  842.       284,  698,  284,  284,  284,  284,  284,  284,  284,  284,
  843.       284,  284,  284,  284,  284,  284,  288,  288,  697,  288,
  844.       288,  696,  695,  694,  288,  288,  315,  693,  315,  315,
  845.       315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
  846.       315,  315,  319,  692,  319,  319,  319,  319,  319,  319,
  847.       319,  319,  319,  319,  319,  319,  319,  319,  320,  691,
  848.       320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
  849.       320,  320,  320,  320,  328,  328,  690,  689,  328,  328,
  850.       328,  329,  329,  688,  687,  329,  329,  329,  330,  330,
  851.  
  852.       330,  330,  330,  330,  330,  330,  330,  330,  330,  330,
  853.       330,  330,  330,  330,  334,  334,  334,  334,  334,  334,
  854.       334,  334,  334,  334,  334,  334,  334,  334,  334,  334,
  855.       338,  683,  338,  338,  338,  338,  338,  338,  338,  338,
  856.       338,  682,  338,  338,  338,  338,  345,  345,  681,  680,
  857.       679,  678,  345,  346,  346,  346,  346,  677,  676,  346,
  858.       346,  346,  346,  351,  675,  351,  351,  351,  351,  351,
  859.       351,  351,  351,  351,  351,  351,  351,  351,  351,  227,
  860.       674,  227,  227,  227,  227,  227,  227,  227,  227,  227,
  861.       227,  227,  227,  227,  227,  229,  673,  229,  229,  229,
  862.  
  863.       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
  864.       229,  230,  672,  230,  230,  230,  230,  230,  230,  230,
  865.       230,  230,  230,  230,  230,  230,  230,  353,  671,  353,
  866.       353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
  867.       353,  353,  353,  354,  670,  354,  354,  354,  354,  354,
  868.       354,  354,  354,  354,  354,  354,  354,  354,  354,  234,
  869.       234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
  870.       234,  234,  234,  234,  234,  236,  668,  236,  236,  667,
  871.       236,  236,  236,  666,  665,  236,  236,  664,  663,  662,
  872.       236,  238,  238,  238,  238,  661,  660,  238,  238,  238,
  873.  
  874.       242,  659,  242,  242,  242,  242,  242,  242,  242,  242,
  875.       242,  242,  242,  242,  242,  242,  246,  246,  246,  246,
  876.       658,  657,  246,  246,  246,  361,  361,  656,  655,  654,
  877.       361,  361,  255,  653,  652,  651,  255,  255,  255,  255,
  878.       650,  649,  255,  255,  257,  648,  257,  257,  257,  257,
  879.       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
  880.       261,  261,  261,  261,  647,  646,  261,  261,  261,  264,
  881.       264,  264,  264,  264,  264,  264,  264,  264,  264,  264,
  882.       264,  264,  264,  264,  264,  267,  267,  267,  267,  645,
  883.       267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
  884.  
  885.       267,  271,  644,  643,  271,  271,  271,  271,  271,  271,
  886.       271,  642,  271,  271,  271,  271,  271,  274,  641,  274,
  887.       274,  640,  274,  274,  274,  639,  638,  274,  274,  637,
  888.       636,  635,  274,  279,  279,  279,  279,  622,  621,  279,
  889.       279,  279,  284,  620,  284,  284,  284,  284,  284,  284,
  890.       284,  284,  284,  284,  284,  284,  284,  284,  288,  288,
  891.       619,  288,  288,  618,  560,  614,  288,  288,  315,  613,
  892.       315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
  893.       315,  315,  315,  315,  319,  612,  319,  319,  319,  319,
  894.       319,  319,  319,  319,  319,  319,  319,  319,  319,  319,
  895.  
  896.       320,  611,  320,  320,  320,  320,  320,  320,  320,  320,
  897.       320,  320,  320,  320,  320,  320,  415,  415,  415,  415,
  898.       415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
  899.       415,  415,  424,  424,  424,  424,  610,  609,  424,  424,
  900.       424,  425,  425,  425,  425,  608,  607,  425,  425,  425,
  901.       330,  330,  330,  330,  330,  330,  330,  330,  330,  330,
  902.       330,  330,  330,  330,  330,  330,  334,  334,  334,  334,
  903.       334,  334,  334,  334,  334,  334,  334,  334,  334,  334,
  904.       334,  334,  338,  606,  338,  338,  338,  338,  338,  338,
  905.       338,  338,  338,  605,  338,  338,  338,  338,  433,  433,
  906.  
  907.       604,  603,  602,  601,  433,  346,  346,  346,  346,  600,
  908.       599,  346,  346,  346,  346,  351,  598,  351,  351,  351,
  909.       351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
  910.       351,  615,  615,  615,  615,  615,  615,  615,  615,  615,
  911.       615,  615,  615,  615,  615,  615,  615,  684,  684,  684,
  912.       684,  684,  684,  684,  684,  684,  684,  684,  684,  684,
  913.       684,  684,  684,  597,  596,  595,  594,  593,  592,  589,
  914.       588,  587,  586,  585,  584,  571,  570,  569,  568,  565,
  915.       564,  563,  562,  561,  560,  559,  558,  557,  556,  555,
  916.       554,  551,  550,  549,  548,  547,  546,  545,  544,  543,
  917.  
  918.       542,  541,  540,  539,  538,  537,  536,  535,  531,  530,
  919.       529,  528,  527,  526,  525,  524,  523,  510,  509,  508,
  920.       507,  506,  503,  499,  498,  497,  496,  492,  491,  490,
  921.       489,  488,  484,  483,  482,  479,  478,  477,  476,  475,
  922.       474,  473,  472,  471,  470,  469,  468,  467,  466,  465,
  923.       464,  463,  462,  461,  460,  459,  458,  457,  456,  455,
  924.       454,  453,  452,  451,  439,  437,  436,  435,  434,  347,
  925.       426,  423,  422,  421,  322,  414,  316,  408,  407,  406,
  926.       401,  400,  399,  398,  397,  396,  395,  394,  391,  390,
  927.       389,  386,  385,  382,  379,  378,  285,  282,  377,  376,
  928.  
  929.       278,  373,  372,  243,  356,  355,  235,  231,  352,  350,
  930.       349,  348,  218,  347,  337,  206,  333,  202,  318,  186,
  931.       182,  316,  314,  313,  312,  311,  310,  309,  305,  299,
  932.       298,  295,  294,  291,  287,  286,  285,  283,  282,  281,
  933.       280,  260,  278,  277,  272,  270,  263,  262,  260,  256,
  934.       250,  253,  250,  249,  247,  245,  244,  243,  241,  240,
  935.       239,  237,  235,  228,  231,  228,  226,  218,  208,  202,
  936.       199,  186,  182,  768,   94,   94,   85,   77,   77,   39,
  937.       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
  938.       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
  939.  
  940.       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
  941.       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
  942.       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
  943.       768,  768,  768,  768,  768,  768,  768
  944.     } ;
  945.  
  946. static const short int yy_chk[2738] =
  947.     {   0,
  948.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  949.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  950.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  951.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  952.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  953.         1,    1,    1,    1,    1,    1,    1,    2,    2,    2,
  954.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  955.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  956.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  957.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  958.  
  959.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  960.         2,    2,    2,    2,    3,    3,    3,    3,  765,    3,
  961.         5,    5,    3,    3,    3,   27,   27,    3,    6,    6,
  962.         6,   75,    3,   75,    6,   17,   17,    3,    3,   11,
  963.        11,   11,   12,   12,   12,   17,   18,   18,   17,   17,
  964.        17,   19,   19,   19,   28,   28,   18,   29,   29,   18,
  965.        18,   18,   20,   20,   20,   29,  160,    3,    3,    3,
  966.         4,    4,    4,    4,   19,    4,    4,  445,    4,    4,
  967.         4,   21,   48,    4,  160,   20,   22,  163,    4,   17,
  968.        23,   23,  168,    4,    4,  167,    4,   30,   30,  167,
  969.  
  970.        18,   23,  168,   21,   21,   30,   21,  163,   22,   22,
  971.       445,   22,   23,   23,   23,   41,   41,   41,   45,   45,
  972.        45,   48,  764,    4,    4,    4,    9,    9,    9,    9,
  973.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  974.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  975.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  976.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  977.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  978.         9,    9,    9,   13,   13,   13,   13,   13,   13,   13,
  979.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  980.  
  981.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  982.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  983.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  984.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  985.        24,   24,   37,  310,   37,   38,  310,   38,   57,   57,
  986.        57,   24,   60,   60,  763,   37,   37,   37,   38,   38,
  987.        38,  762,   24,   24,   24,   25,   25,   25,   25,   25,
  988.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  989.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  990.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  991.  
  992.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  993.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  994.        25,   25,   31,   31,   31,   32,   32,   32,   62,   62,
  995.        62,   99,   99,   99,  109,  128,  128,  130,  130,  131,
  996.       131,  133,  133,  198,  198,   31,  761,  109,   32,   33,
  997.        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
  998.        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
  999.        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
  1000.        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
  1001.        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
  1002.  
  1003.        33,   33,   33,   33,   33,   33,   35,   35,   35,   35,
  1004.        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
  1005.        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
  1006.        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
  1007.        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
  1008.        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
  1009.        35,   35,   35,   49,   53,   53,   53,   61,   61,   61,
  1010.        53,  441,   66,  170,  188,   63,   63,   63,  105,  105,
  1011.       105,   63,  441,  170,  366,   49,  170,   49,   63,   49,
  1012.       108,  108,  108,   63,  121,   49,  205,  205,   49,   49,
  1013.  
  1014.        49,   63,   49,   49,   61,  115,  115,  115,   49,  257,
  1015.        49,  121,  366,  188,  141,  105,  158,  294,   53,   66,
  1016.       141,  294,  158,  180,  180,  180,  257,  108,  574,   63,
  1017.       181,  181,  181,  185,  185,  185,  192,  192,  192,  193,
  1018.       193,  193,  115,  194,  194,  194,  195,  195,  195,  574,
  1019.       192,  192,  192,  193,  193,  193,  369,  194,  194,  194,
  1020.       195,  195,  195,  201,  201,  201,  209,  209,  210,  201,
  1021.       211,  211,  211,  289,  210,  210,  213,  213,  213,  264,
  1022.       264,  192,  369,  217,  217,  217,  194,  289,  195,  217,
  1023.       248,  248,  248,  266,  266,  291,  217,  267,  267,  269,
  1024.  
  1025.       269,  217,  275,  760,  309,  757,  298,  211,  275,  217,
  1026.       298,  314,  291,  309,  314,  330,  330,  201,  317,  317,
  1027.       317,  332,  332,  314,  314,  334,  334,  336,  336,  338,
  1028.       338,  344,  344,  344,  314,  415,  415,  217,  241,  241,
  1029.       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
  1030.       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
  1031.       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
  1032.       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
  1033.       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
  1034.       241,  241,  241,  241,  241,  250,  250,  250,  250,  362,
  1035.  
  1036.       371,  250,  339,  418,  418,  405,  250,  756,  339,  339,
  1037.       250,  405,  755,  250,  371,  250,  494,  494,  250,  278,
  1038.       278,  362,  278,  278,  278,  278,  278,  278,  278,  278,
  1039.       278,  278,  278,  278,  278,  278,  278,  278,  278,  278,
  1040.       278,  278,  278,  278,  278,  278,  278,  278,  278,  278,
  1041.       278,  278,  278,  278,  278,  278,  278,  278,  278,  278,
  1042.       278,  278,  278,  278,  278,  278,  278,  278,  278,  278,
  1043.       278,  278,  278,  278,  278,  278,  321,  321,  321,  324,
  1044.       324,  324,  363,  365,  364,  340,  340,  340,  367,  368,
  1045.       321,  321,  321,  324,  324,  324,  340,  342,  342,  342,
  1046.  
  1047.       754,  443,  365,  485,  363,  444,  342,  342,  364,  485,
  1048.       448,  409,  519,  367,  409,  409,  444,  368,  443,  442,
  1049.       368,  448,  340,  341,  341,  519,  341,  341,  341,  341,
  1050.       341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
  1051.       341,  341,  341,  341,  341,  341,  341,  341,  341,  442,
  1052.       341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
  1053.       341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
  1054.       341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
  1055.       343,  343,  343,  446,  370,  504,  504,  343,  752,  343,
  1056.       343,  420,  420,  420,  343,  343,  343,  343,  343,  343,
  1057.  
  1058.       360,  360,  446,  360,  360,  360,  360,  360,  360,  360,
  1059.       370,  360,  360,  360,  360,  360,  360,  360,  360,  360,
  1060.       360,  360,  505,  505,  360,  360,  360,  360,  416,  416,
  1061.       416,  419,  419,  419,  750,  447,  495,  495,  495,  428,
  1062.       428,  428,  416,  416,  416,  419,  419,  419,  428,  428,
  1063.       503,  503,  503,  449,  360,  360,  360,  375,  375,  447,
  1064.       375,  375,  375,  375,  375,  375,  375,  440,  375,  375,
  1065.       375,  375,  375,  375,  375,  375,  375,  375,  375,  449,
  1066.       450,  375,  375,  375,  375,  431,  431,  431,  511,  462,
  1067.       512,  440,  514,  440,  431,  431,  501,  501,  501,  450,
  1068.  
  1069.       561,  561,  517,  521,  749,  501,  501,  748,  512,  747,
  1070.       462,  375,  375,  375,  427,  427,  462,  517,  521,  511,
  1071.       514,  427,  427,  427,  427,  427,  427,  427,  427,  427,
  1072.       427,  427,  427,  427,  427,  427,  427,  427,  427,  427,
  1073.       427,  427,  427,  427,  427,  427,  429,  429,  429,  516,
  1074.       513,  515,  518,  429,  522,  745,  520,  565,  565,  565,
  1075.       429,  429,  429,  429,  429,  429,  432,  432,  432,  520,
  1076.       515,  522,  572,  432,  513,  516,  518,  566,  566,  532,
  1077.       432,  432,  432,  432,  432,  432,  502,  502,  502,  532,
  1078.       567,  567,  575,  502,  576,  572,  573,  577,  578,  579,
  1079.  
  1080.       502,  502,  502,  502,  502,  502,  580,  573,  581,  582,
  1081.       634,  583,  615,  615,  575,  577,  617,  617,  656,  656,
  1082.       744,  681,  743,  581,  576,  742,  578,  684,  684,  579,
  1083.       583,  686,  686,  810,  810,  708,  580,  582,  681,  708,
  1084.       634,  769,  769,  769,  769,  769,  769,  769,  769,  769,
  1085.       769,  769,  769,  769,  769,  769,  769,  770,  770,  770,
  1086.       770,  770,  770,  770,  770,  770,  770,  770,  770,  770,
  1087.       770,  770,  770,  771,  771,  771,  771,  771,  771,  771,
  1088.       771,  771,  771,  771,  771,  771,  771,  771,  771,  772,
  1089.       772,  772,  772,  772,  772,  772,  772,  772,  772,  772,
  1090.  
  1091.       772,  772,  772,  772,  772,  773,  773,  773,  773,  773,
  1092.       773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
  1093.       773,  774,  774,  774,  774,  774,  774,  774,  774,  774,
  1094.       774,  774,  774,  774,  774,  774,  774,  775,  775,  775,
  1095.       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
  1096.       775,  775,  775,  776,  776,  776,  776,  776,  776,  776,
  1097.       776,  776,  776,  776,  776,  776,  776,  776,  776,  777,
  1098.       777,  777,  777,  777,  777,  777,  777,  777,  777,  777,
  1099.       777,  777,  777,  777,  777,  778,  778,  778,  778,  778,
  1100.       778,  778,  778,  778,  778,  778,  778,  778,  778,  778,
  1101.  
  1102.       778,  779,  779,  779,  779,  779,  779,  779,  779,  779,
  1103.       779,  779,  779,  779,  779,  779,  779,  780,  780,  780,
  1104.       780,  780,  780,  780,  780,  780,  780,  780,  780,  780,
  1105.       780,  780,  780,  781,  781,  781,  781,  781,  781,  781,
  1106.       781,  781,  781,  781,  781,  781,  781,  781,  781,  782,
  1107.       782,  782,  782,  782,  782,  782,  782,  782,  782,  782,
  1108.       782,  782,  782,  782,  782,  783,  783,  783,  783,  740,
  1109.       739,  783,  783,  783,  784,  784,  784,  784,  784,  784,
  1110.       784,  784,  784,  784,  784,  784,  784,  784,  784,  785,
  1111.       785,  785,  785,  738,  737,  785,  785,  785,  786,  736,
  1112.  
  1113.       786,  786,  786,  786,  786,  786,  786,  786,  786,  786,
  1114.       786,  786,  786,  786,  787,  735,  787,  787,  787,  787,
  1115.       787,  787,  787,  787,  787,  787,  787,  787,  787,  787,
  1116.       788,  788,  788,  734,  733,  788,  788,  788,  789,  732,
  1117.       789,  789,  789,  789,  789,  789,  789,  789,  789,  789,
  1118.       789,  789,  789,  789,  790,  731,  790,  790,  790,  790,
  1119.       790,  790,  790,  790,  790,  790,  790,  790,  790,  790,
  1120.       791,  729,  791,  791,  791,  791,  791,  791,  791,  791,
  1121.       791,  791,  791,  791,  791,  791,  792,  792,  792,  792,
  1122.       792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
  1123.  
  1124.       792,  792,  793,  727,  793,  793,  726,  793,  793,  793,
  1125.       725,  724,  793,  793,  723,  722,  721,  793,  794,  794,
  1126.       794,  794,  720,  719,  794,  794,  794,  795,  718,  795,
  1127.       795,  795,  795,  795,  795,  795,  795,  795,  795,  795,
  1128.       795,  795,  795,  796,  796,  796,  796,  717,  715,  796,
  1129.       796,  796,  797,  714,  797,  797,  797,  797,  797,  797,
  1130.       797,  797,  797,  797,  797,  797,  797,  797,  798,  713,
  1131.       798,  798,  798,  798,  798,  798,  798,  798,  798,  712,
  1132.       798,  798,  798,  798,  799,  710,  709,  707,  799,  799,
  1133.       799,  799,  706,  705,  799,  799,  800,  704,  800,  800,
  1134.  
  1135.       800,  800,  800,  800,  800,  800,  800,  800,  800,  800,
  1136.       800,  800,  801,  801,  801,  801,  703,  702,  801,  801,
  1137.       801,  802,  802,  802,  802,  802,  802,  802,  802,  802,
  1138.       802,  802,  802,  802,  802,  802,  802,  803,  803,  803,
  1139.       803,  701,  803,  803,  803,  803,  803,  803,  803,  803,
  1140.       803,  803,  803,  804,  700,  699,  804,  804,  804,  804,
  1141.       804,  804,  804,  698,  804,  804,  804,  804,  804,  805,
  1142.       682,  805,  805,  805,  805,  805,  805,  805,  805,  805,
  1143.       805,  805,  805,  805,  805,  806,  680,  806,  806,  679,
  1144.       806,  806,  806,  678,  677,  806,  806,  675,  674,  672,
  1145.  
  1146.       806,  807,  807,  807,  807,  671,  670,  807,  807,  807,
  1147.       808,  669,  808,  808,  808,  808,  808,  808,  808,  808,
  1148.       808,  808,  808,  808,  808,  808,  809,  809,  668,  809,
  1149.       809,  667,  666,  665,  809,  809,  811,  664,  811,  811,
  1150.       811,  811,  811,  811,  811,  811,  811,  811,  811,  811,
  1151.       811,  811,  812,  663,  812,  812,  812,  812,  812,  812,
  1152.       812,  812,  812,  812,  812,  812,  812,  812,  813,  662,
  1153.       813,  813,  813,  813,  813,  813,  813,  813,  813,  813,
  1154.       813,  813,  813,  813,  814,  814,  661,  660,  814,  814,
  1155.       814,  815,  815,  659,  658,  815,  815,  815,  816,  816,
  1156.  
  1157.       816,  816,  816,  816,  816,  816,  816,  816,  816,  816,
  1158.       816,  816,  816,  816,  817,  817,  817,  817,  817,  817,
  1159.       817,  817,  817,  817,  817,  817,  817,  817,  817,  817,
  1160.       818,  655,  818,  818,  818,  818,  818,  818,  818,  818,
  1161.       818,  653,  818,  818,  818,  818,  819,  819,  652,  651,
  1162.       650,  646,  819,  820,  820,  820,  820,  644,  643,  820,
  1163.       820,  820,  820,  821,  642,  821,  821,  821,  821,  821,
  1164.       821,  821,  821,  821,  821,  821,  821,  821,  821,  822,
  1165.       641,  822,  822,  822,  822,  822,  822,  822,  822,  822,
  1166.       822,  822,  822,  822,  822,  823,  639,  823,  823,  823,
  1167.  
  1168.       823,  823,  823,  823,  823,  823,  823,  823,  823,  823,
  1169.       823,  824,  637,  824,  824,  824,  824,  824,  824,  824,
  1170.       824,  824,  824,  824,  824,  824,  824,  825,  636,  825,
  1171.       825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
  1172.       825,  825,  825,  826,  635,  826,  826,  826,  826,  826,
  1173.       826,  826,  826,  826,  826,  826,  826,  826,  826,  827,
  1174.       827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
  1175.       827,  827,  827,  827,  827,  828,  633,  828,  828,  632,
  1176.       828,  828,  828,  631,  630,  828,  828,  629,  628,  627,
  1177.       828,  829,  829,  829,  829,  626,  625,  829,  829,  829,
  1178.  
  1179.       830,  624,  830,  830,  830,  830,  830,  830,  830,  830,
  1180.       830,  830,  830,  830,  830,  830,  831,  831,  831,  831,
  1181.       623,  621,  831,  831,  831,  832,  832,  619,  612,  611,
  1182.       832,  832,  833,  610,  609,  608,  833,  833,  833,  833,
  1183.       607,  606,  833,  833,  834,  604,  834,  834,  834,  834,
  1184.       834,  834,  834,  834,  834,  834,  834,  834,  834,  834,
  1185.       835,  835,  835,  835,  601,  600,  835,  835,  835,  836,
  1186.       836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
  1187.       836,  836,  836,  836,  836,  837,  837,  837,  837,  599,
  1188.       837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
  1189.  
  1190.       837,  838,  598,  597,  838,  838,  838,  838,  838,  838,
  1191.       838,  596,  838,  838,  838,  838,  838,  839,  595,  839,
  1192.       839,  594,  839,  839,  839,  593,  592,  839,  839,  591,
  1193.       590,  588,  839,  840,  840,  840,  840,  569,  568,  840,
  1194.       840,  840,  841,  564,  841,  841,  841,  841,  841,  841,
  1195.       841,  841,  841,  841,  841,  841,  841,  841,  842,  842,
  1196.       563,  842,  842,  562,  560,  559,  842,  842,  843,  558,
  1197.       843,  843,  843,  843,  843,  843,  843,  843,  843,  843,
  1198.       843,  843,  843,  843,  844,  557,  844,  844,  844,  844,
  1199.       844,  844,  844,  844,  844,  844,  844,  844,  844,  844,
  1200.  
  1201.       845,  556,  845,  845,  845,  845,  845,  845,  845,  845,
  1202.       845,  845,  845,  845,  845,  845,  846,  846,  846,  846,
  1203.       846,  846,  846,  846,  846,  846,  846,  846,  846,  846,
  1204.       846,  846,  847,  847,  847,  847,  555,  554,  847,  847,
  1205.       847,  848,  848,  848,  848,  553,  552,  848,  848,  848,
  1206.       849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
  1207.       849,  849,  849,  849,  849,  849,  850,  850,  850,  850,
  1208.       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
  1209.       850,  850,  851,  551,  851,  851,  851,  851,  851,  851,
  1210.       851,  851,  851,  549,  851,  851,  851,  851,  852,  852,
  1211.  
  1212.       548,  546,  545,  544,  852,  853,  853,  853,  853,  543,
  1213.       542,  853,  853,  853,  853,  854,  541,  854,  854,  854,
  1214.       854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
  1215.       854,  855,  855,  855,  855,  855,  855,  855,  855,  855,
  1216.       855,  855,  855,  855,  855,  855,  855,  856,  856,  856,
  1217.       856,  856,  856,  856,  856,  856,  856,  856,  856,  856,
  1218.       856,  856,  856,  540,  539,  538,  536,  534,  533,  530,
  1219.       528,  526,  525,  524,  523,  509,  508,  507,  506,  500,
  1220.       499,  498,  497,  496,  492,  491,  490,  489,  488,  487,
  1221.       486,  483,  482,  481,  480,  479,  478,  476,  475,  474,
  1222.  
  1223.       473,  472,  471,  469,  468,  467,  464,  463,  461,  460,
  1224.       459,  458,  457,  454,  453,  452,  451,  439,  437,  436,
  1225.       435,  434,  430,  426,  423,  422,  421,  414,  413,  412,
  1226.       411,  410,  408,  407,  406,  404,  403,  402,  401,  400,
  1227.       399,  398,  397,  396,  395,  394,  393,  392,  391,  390,
  1228.       388,  387,  386,  384,  383,  382,  381,  380,  379,  378,
  1229.       377,  376,  373,  372,  361,  356,  355,  352,  350,  346,
  1230.       337,  327,  326,  325,  323,  318,  315,  313,  312,  311,
  1231.       308,  307,  306,  305,  303,  301,  300,  299,  297,  296,
  1232.       295,  293,  292,  290,  287,  286,  284,  282,  281,  280,
  1233.  
  1234.       276,  263,  262,  243,  240,  239,  234,  231,  226,  222,
  1235.       221,  220,  219,  216,  208,  207,  204,  203,  189,  187,
  1236.       183,  179,  176,  175,  174,  173,  172,  171,  169,  166,
  1237.       165,  162,  161,  159,  156,  155,  154,  153,  151,  149,
  1238.       148,  146,  144,  143,  137,  134,  125,  124,  122,  119,
  1239.       114,  112,  107,  103,   97,   92,   89,   87,   85,   84,
  1240.        83,   80,   76,   74,   73,   71,   67,   65,   59,   55,
  1241.        50,   47,   43,   39,   16,   15,   10,    8,    7,  768,
  1242.       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
  1243.       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
  1244.  
  1245.       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
  1246.       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
  1247.       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
  1248.       768,  768,  768,  768,  768,  768,  768
  1249.     } ;
  1250.  
  1251. static yy_state_type yy_last_accepting_state;
  1252. static char *yy_last_accepting_cpos;
  1253.  
  1254. /* The intent behind this definition is that it'll catch
  1255.  * any uses of REJECT which flex missed.
  1256.  */
  1257. #define REJECT reject_used_but_not_detected
  1258. #define yymore() yymore_used_but_not_detected
  1259. #define YY_MORE_ADJ 0
  1260. char *yytext;
  1261. #line 1 "scan.l"
  1262. #define INITIAL 0
  1263. /* scan.l - scanner for flex input */
  1264. #line 4 "scan.l"
  1265. /*-
  1266.  * Copyright (c) 1990 The Regents of the University of California.
  1267.  * All rights reserved.
  1268.  *
  1269.  * This code is derived from software contributed to Berkeley by
  1270.  * Vern Paxson.
  1271.  * 
  1272.  * The United States Government has rights in this work pursuant
  1273.  * to contract no. DE-AC03-76SF00098 between the United States
  1274.  * Department of Energy and the University of California.
  1275.  *
  1276.  * Redistribution and use in source and binary forms are permitted provided
  1277.  * that: (1) source distributions retain this entire copyright notice and
  1278.  * comment, and (2) distributions including binaries display the following
  1279.  * acknowledgement:  ``This product includes software developed by the
  1280.  * University of California, Berkeley and its contributors'' in the
  1281.  * documentation or other materials provided with the distribution and in
  1282.  * all advertising materials mentioning features or use of this software.
  1283.  * Neither the name of the University nor the names of its contributors may
  1284.  * be used to endorse or promote products derived from this software without
  1285.  * specific prior written permission.
  1286.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
  1287.  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
  1288.  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  1289.  */
  1290.  
  1291. /* $Header: /home/daffy/u0/vern/flex/RCS/scan.l,v 2.54 95/03/20 14:01:16 vern Exp $ */
  1292.  
  1293. #include "flexdef.h"
  1294. #include "parse.h"
  1295.  
  1296. #define ACTION_ECHO add_action( yytext )
  1297. #define ACTION_IFDEF(def, should_define) \
  1298.     { \
  1299.     if ( should_define ) \
  1300.         action_define( def, 1 ); \
  1301.     }
  1302.  
  1303. #define MARK_END_OF_PROLOG mark_prolog();
  1304.  
  1305. #define YY_DECL \
  1306.     int flexscan()
  1307.  
  1308. #define RETURNCHAR \
  1309.     yylval = (unsigned char) yytext[0]; \
  1310.     return CHAR;
  1311.  
  1312. #define RETURNNAME \
  1313.     strcpy( nmstr, yytext ); \
  1314.     return NAME;
  1315.  
  1316. #define PUT_BACK_STRING(str, start) \
  1317.     for ( i = strlen( str ) - 1; i >= start; --i ) \
  1318.         unput((str)[i])
  1319.  
  1320. #define CHECK_REJECT(str) \
  1321.     if ( all_upper( str ) ) \
  1322.         reject = true;
  1323.  
  1324. #define CHECK_YYMORE(str) \
  1325.     if ( all_lower( str ) ) \
  1326.         yymore_used = true;
  1327. #define YY_STACK_USED 1
  1328. #define YY_NO_TOP_STATE 1
  1329. #define SECT2 1
  1330. #define SECT2PROLOG 2
  1331. #define SECT3 3
  1332. #define CODEBLOCK 4
  1333. #define PICKUPDEF 5
  1334. #define SC 6
  1335. #define CARETISBOL 7
  1336. #define NUM 8
  1337. #define QUOTE 9
  1338.  
  1339. #define FIRSTCCL 10
  1340. #define CCL 11
  1341. #define ACTION 12
  1342. #define RECOVER 13
  1343. #define COMMENT 14
  1344. #define ACTION_STRING 15
  1345. #define PERCENT_BRACE_ACTION 16
  1346.  
  1347. #define OPTION 17
  1348. #define LINEDIR 18
  1349.  
  1350. #line 1351 "scan.c"
  1351.  
  1352. /* Macros after this point can all be overridden by user definitions in
  1353.  * section 1.
  1354.  */
  1355.  
  1356. #if YY_STACK_USED
  1357. static int yy_start_stack_ptr = 0;
  1358. static int yy_start_stack_depth = 0;
  1359. static int *yy_start_stack = 0;
  1360. #ifndef YY_NO_PUSH_STATE
  1361. static void yy_push_state YY_PROTO(( int new_state ));
  1362. #endif
  1363. #ifndef YY_NO_POP_STATE
  1364. static void yy_pop_state YY_PROTO(( void ));
  1365. #endif
  1366. #ifndef YY_NO_TOP_STATE
  1367. static int yy_top_state YY_PROTO(( void ));
  1368. #endif
  1369.  
  1370. #else
  1371. #define YY_NO_PUSH_STATE 1
  1372. #define YY_NO_POP_STATE 1
  1373. #define YY_NO_TOP_STATE 1
  1374. #endif
  1375.  
  1376. #ifdef YY_MALLOC_DECL
  1377. YY_MALLOC_DECL
  1378. #else
  1379. #if __STDC__
  1380. #ifndef __cplusplus
  1381. #include <stdlib.h>
  1382. #endif
  1383. #else
  1384. /* Just try to get by without declaring the routines.  This will fail
  1385.  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
  1386.  * or sizeof(void*) != sizeof(int).
  1387.  */
  1388. #endif
  1389. #endif
  1390.  
  1391. /* Amount of stuff to slurp up with each read. */
  1392. #ifndef YY_READ_BUF_SIZE
  1393. #define YY_READ_BUF_SIZE 8192
  1394. #endif
  1395.  
  1396. /* Copy whatever the last rule matched to the standard output. */
  1397.  
  1398. #ifndef ECHO
  1399. /* This used to be an fputs(), but since the string might contain NUL's,
  1400.  * we now use fwrite().
  1401.  */
  1402. #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
  1403. #endif
  1404.  
  1405. /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
  1406.  * is returned in "result".
  1407.  */
  1408. #ifndef YY_INPUT
  1409. #define YY_INPUT(buf,result,max_size) \
  1410.     if ( yy_current_buffer->yy_is_interactive ) \
  1411.         { \
  1412.         int c = '*', n; \
  1413.         for ( n = 0; n < max_size && \
  1414.                  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
  1415.             buf[n] = (char) c; \
  1416.         if ( c == '\n' ) \
  1417.             buf[n++] = (char) c; \
  1418.         if ( c == EOF && ferror( yyin ) ) \
  1419.             YY_FATAL_ERROR( "input in flex scanner failed" ); \
  1420.         result = n; \
  1421.         } \
  1422.     else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
  1423.           && ferror( yyin ) ) \
  1424.         YY_FATAL_ERROR( "input in flex scanner failed" );
  1425. #endif
  1426.  
  1427. /* No semi-colon after return; correct usage is to write "yyterminate();" -
  1428.  * we don't want an extra ';' after the "return" because that will cause
  1429.  * some compilers to complain about unreachable statements.
  1430.  */
  1431. #ifndef yyterminate
  1432. #define yyterminate() return YY_NULL
  1433. #endif
  1434.  
  1435. /* Number of entries by which start-condition stack grows. */
  1436. #ifndef YY_START_STACK_INCR
  1437. #define YY_START_STACK_INCR 25
  1438. #endif
  1439.  
  1440. /* Report a fatal error. */
  1441. #ifndef YY_FATAL_ERROR
  1442. #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  1443. #endif
  1444.  
  1445. /* Default declaration of generated scanner - a define so the user can
  1446.  * easily add parameters.
  1447.  */
  1448. #ifndef YY_DECL
  1449. #define YY_DECL int yylex YY_PROTO(( void ))
  1450. #endif
  1451.  
  1452. /* Code executed at the beginning of each rule, after yytext and yyleng
  1453.  * have been set up.
  1454.  */
  1455. #ifndef YY_USER_ACTION
  1456. #define YY_USER_ACTION
  1457. #endif
  1458.  
  1459. /* Code executed at the end of each rule. */
  1460. #ifndef YY_BREAK
  1461. #define YY_BREAK break;
  1462. #endif
  1463.  
  1464. #define YY_RULE_SETUP \
  1465.     if ( yyleng > 0 ) \
  1466.         yy_current_buffer->yy_at_bol = \
  1467.                 (yytext[yyleng - 1] == '\n'); \
  1468.     YY_USER_ACTION
  1469.  
  1470. YY_DECL
  1471.     {
  1472.     register yy_state_type yy_current_state;
  1473.     register char *yy_cp, *yy_bp;
  1474.     register int yy_act;
  1475.  
  1476. #line 94 "scan.l"
  1477.  
  1478.     static int bracelevel, didadef, indented_code;
  1479.     static int doing_rule_action = false;
  1480.     static int option_sense;
  1481.  
  1482.     int doing_codeblock = false;
  1483.     int i;
  1484.     Char nmdef[MAXLINE], myesc();
  1485.  
  1486.  
  1487. #line 1488 "scan.c"
  1488.  
  1489.     if ( yy_init )
  1490.         {
  1491.         yy_init = 0;
  1492.  
  1493. #ifdef YY_USER_INIT
  1494.         YY_USER_INIT;
  1495. #endif
  1496.  
  1497.         if ( ! yy_start )
  1498.             yy_start = 1;    /* first start state */
  1499.  
  1500.         if ( ! yyin )
  1501.             yyin = stdin;
  1502.  
  1503.         if ( ! yyout )
  1504.             yyout = stdout;
  1505.  
  1506.         if ( ! yy_current_buffer )
  1507.             yy_current_buffer =
  1508.                 yy_create_buffer( yyin, YY_BUF_SIZE );
  1509.  
  1510.         yy_load_buffer_state();
  1511.         }
  1512.  
  1513.     while ( 1 )        /* loops until end-of-file is reached */
  1514.         {
  1515.         yy_cp = yy_c_buf_p;
  1516.  
  1517.         /* Support of yytext. */
  1518.         *yy_cp = yy_hold_char;
  1519.  
  1520.         /* yy_bp points to the position in yy_ch_buf of the start of
  1521.          * the current run.
  1522.          */
  1523.         yy_bp = yy_cp;
  1524.  
  1525.         yy_current_state = yy_start;
  1526.         yy_current_state += YY_AT_BOL();
  1527. yy_match:
  1528.         do
  1529.             {
  1530.             register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
  1531.             if ( yy_accept[yy_current_state] )
  1532.                 {
  1533.                 yy_last_accepting_state = yy_current_state;
  1534.                 yy_last_accepting_cpos = yy_cp;
  1535.                 }
  1536.             while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1537.                 {
  1538.                 yy_current_state = (int) yy_def[yy_current_state];
  1539.                 if ( yy_current_state >= 769 )
  1540.                     yy_c = yy_meta[(unsigned int) yy_c];
  1541.                 }
  1542.             yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  1543.             ++yy_cp;
  1544.             }
  1545.         while ( yy_base[yy_current_state] != 2680 );
  1546.  
  1547. yy_find_action:
  1548.         yy_act = yy_accept[yy_current_state];
  1549.         if ( yy_act == 0 )
  1550.             { /* have to back up */
  1551.             yy_cp = yy_last_accepting_cpos;
  1552.             yy_current_state = yy_last_accepting_state;
  1553.             yy_act = yy_accept[yy_current_state];
  1554.             }
  1555.  
  1556.         YY_DO_BEFORE_ACTION;
  1557.  
  1558.  
  1559. do_action:    /* This label is used only to access EOF actions. */
  1560.  
  1561.  
  1562.         switch ( yy_act )
  1563.     { /* beginning of action switch */
  1564.             case 0: /* must back up */
  1565.             /* undo the effects of YY_DO_BEFORE_ACTION */
  1566.             *yy_cp = yy_hold_char;
  1567.             yy_cp = yy_last_accepting_cpos;
  1568.             yy_current_state = yy_last_accepting_state;
  1569.             goto yy_find_action;
  1570.  
  1571.  
  1572. case 1:
  1573. YY_RULE_SETUP
  1574. #line 105 "scan.l"
  1575. indented_code = true; BEGIN(CODEBLOCK);
  1576.     YY_BREAK
  1577. case 2:
  1578. YY_RULE_SETUP
  1579. #line 106 "scan.l"
  1580. ACTION_ECHO; yy_push_state( COMMENT );
  1581.     YY_BREAK
  1582. case 3:
  1583. YY_RULE_SETUP
  1584. #line 107 "scan.l"
  1585. yy_push_state( LINEDIR );
  1586.     YY_BREAK
  1587. case 4:
  1588. YY_RULE_SETUP
  1589. #line 108 "scan.l"
  1590. return SCDECL;
  1591.     YY_BREAK
  1592. case 5:
  1593. YY_RULE_SETUP
  1594. #line 109 "scan.l"
  1595. return XSCDECL;
  1596.     YY_BREAK
  1597. case 6:
  1598. YY_RULE_SETUP
  1599. #line 110 "scan.l"
  1600. {
  1601.             ++linenum;
  1602.             line_directive_out( (FILE *) 0, 1 );
  1603.             indented_code = false;
  1604.             BEGIN(CODEBLOCK);
  1605.             }
  1606.     YY_BREAK
  1607. case 7:
  1608. YY_RULE_SETUP
  1609. #line 117 "scan.l"
  1610. /* discard */
  1611.     YY_BREAK
  1612. case 8:
  1613. YY_RULE_SETUP
  1614. #line 119 "scan.l"
  1615. {
  1616.             sectnum = 2;
  1617.             bracelevel = 0;
  1618.             mark_defs1();
  1619.             line_directive_out( (FILE *) 0, 1 );
  1620.             BEGIN(SECT2PROLOG);
  1621.             return SECTEND;
  1622.             }
  1623.     YY_BREAK
  1624. case 9:
  1625. YY_RULE_SETUP
  1626. #line 128 "scan.l"
  1627. yytext_is_array = false; ++linenum;
  1628.     YY_BREAK
  1629. case 10:
  1630. YY_RULE_SETUP
  1631. #line 129 "scan.l"
  1632. yytext_is_array = true; ++linenum;
  1633.     YY_BREAK
  1634. case 11:
  1635. YY_RULE_SETUP
  1636. #line 131 "scan.l"
  1637. BEGIN(OPTION); return OPTION_OP;
  1638.     YY_BREAK
  1639. case 12:
  1640. YY_RULE_SETUP
  1641. #line 133 "scan.l"
  1642. ++linenum; /* ignore */
  1643.     YY_BREAK
  1644. case 13:
  1645. YY_RULE_SETUP
  1646. #line 134 "scan.l"
  1647. ++linenum;    /* ignore */
  1648.     YY_BREAK
  1649. case 14:
  1650. YY_RULE_SETUP
  1651. #line 136 "scan.l"
  1652. synerr( _( "unrecognized '%' directive" ) );
  1653.     YY_BREAK
  1654. case 15:
  1655. YY_RULE_SETUP
  1656. #line 138 "scan.l"
  1657. {
  1658.             strcpy( nmstr, yytext );
  1659.             didadef = false;
  1660.             BEGIN(PICKUPDEF);
  1661.             }
  1662.     YY_BREAK
  1663. case 16:
  1664. YY_RULE_SETUP
  1665. #line 144 "scan.l"
  1666. RETURNNAME;
  1667.     YY_BREAK
  1668. case 17:
  1669. YY_RULE_SETUP
  1670. #line 145 "scan.l"
  1671. ++linenum; /* allows blank lines in section 1 */
  1672.     YY_BREAK
  1673. case 18:
  1674. YY_RULE_SETUP
  1675. #line 146 "scan.l"
  1676. ACTION_ECHO; ++linenum; /* maybe end of comment line */
  1677.     YY_BREAK
  1678.  
  1679.  
  1680. case 19:
  1681. YY_RULE_SETUP
  1682. #line 151 "scan.l"
  1683. ACTION_ECHO; yy_pop_state();
  1684.     YY_BREAK
  1685. case 20:
  1686. YY_RULE_SETUP
  1687. #line 152 "scan.l"
  1688. ACTION_ECHO;
  1689.     YY_BREAK
  1690. case 21:
  1691. YY_RULE_SETUP
  1692. #line 153 "scan.l"
  1693. ACTION_ECHO;
  1694.     YY_BREAK
  1695. case 22:
  1696. YY_RULE_SETUP
  1697. #line 154 "scan.l"
  1698. ++linenum; ACTION_ECHO;
  1699.     YY_BREAK
  1700.  
  1701.  
  1702. case 23:
  1703. YY_RULE_SETUP
  1704. #line 158 "scan.l"
  1705. yy_pop_state();
  1706.     YY_BREAK
  1707. case 24:
  1708. YY_RULE_SETUP
  1709. #line 159 "scan.l"
  1710. linenum = myctoi( yytext );
  1711.     YY_BREAK
  1712. case 25:
  1713. YY_RULE_SETUP
  1714. #line 161 "scan.l"
  1715. {
  1716.             flex_free( infilename );
  1717.             infilename = copy_string( yytext + 1 );
  1718.             infilename[strlen( infilename ) - 1] = '\0';
  1719.             }
  1720.     YY_BREAK
  1721. case 26:
  1722. YY_RULE_SETUP
  1723. #line 166 "scan.l"
  1724. /* ignore spurious characters */
  1725.     YY_BREAK
  1726.  
  1727.  
  1728. case 27:
  1729. YY_RULE_SETUP
  1730. #line 170 "scan.l"
  1731. ++linenum; BEGIN(INITIAL);
  1732.     YY_BREAK
  1733. case 28:
  1734. YY_RULE_SETUP
  1735. #line 172 "scan.l"
  1736. ACTION_ECHO;
  1737.     YY_BREAK
  1738. case 29:
  1739. YY_RULE_SETUP
  1740. #line 174 "scan.l"
  1741. {
  1742.             ++linenum;
  1743.             ACTION_ECHO;
  1744.             if ( indented_code )
  1745.                 BEGIN(INITIAL);
  1746.             }
  1747.     YY_BREAK
  1748.  
  1749.  
  1750. case 30:
  1751. YY_RULE_SETUP
  1752. #line 184 "scan.l"
  1753. /* separates name and definition */
  1754.     YY_BREAK
  1755. case 31:
  1756. YY_RULE_SETUP
  1757. #line 186 "scan.l"
  1758. {
  1759.             strcpy( (char *) nmdef, yytext );
  1760.  
  1761.             /* Skip trailing whitespace. */
  1762.             for ( i = strlen( (char *) nmdef ) - 1;
  1763.                   i >= 0 && (nmdef[i] == ' ' || nmdef[i] == '\t');
  1764.                   --i )
  1765.                 ;
  1766.  
  1767.             nmdef[i + 1] = '\0';
  1768.  
  1769.             ndinstal( nmstr, nmdef );
  1770.             didadef = true;
  1771.             }
  1772.     YY_BREAK
  1773. case 32:
  1774. YY_RULE_SETUP
  1775. #line 201 "scan.l"
  1776. {
  1777.             if ( ! didadef )
  1778.                 synerr( _( "incomplete name definition" ) );
  1779.             BEGIN(INITIAL);
  1780.             ++linenum;
  1781.             }
  1782.     YY_BREAK
  1783.  
  1784.  
  1785. case 33:
  1786. YY_RULE_SETUP
  1787. #line 211 "scan.l"
  1788. ++linenum; BEGIN(INITIAL);
  1789.     YY_BREAK
  1790. case 34:
  1791. YY_RULE_SETUP
  1792. #line 212 "scan.l"
  1793. option_sense = true;
  1794.     YY_BREAK
  1795. case 35:
  1796. YY_RULE_SETUP
  1797. #line 214 "scan.l"
  1798. return '=';
  1799.     YY_BREAK
  1800. case 36:
  1801. YY_RULE_SETUP
  1802. #line 216 "scan.l"
  1803. option_sense = ! option_sense;
  1804.     YY_BREAK
  1805. case 37:
  1806. YY_RULE_SETUP
  1807. #line 218 "scan.l"
  1808. csize = option_sense ? 128 : 256;
  1809.     YY_BREAK
  1810. case 38:
  1811. YY_RULE_SETUP
  1812. #line 219 "scan.l"
  1813. csize = option_sense ? 256 : 128;
  1814.     YY_BREAK
  1815. case 39:
  1816. YY_RULE_SETUP
  1817. #line 221 "scan.l"
  1818. long_align = option_sense;
  1819.     YY_BREAK
  1820. case 40:
  1821. YY_RULE_SETUP
  1822. #line 222 "scan.l"
  1823. {
  1824.             action_define( "YY_ALWAYS_INTERACTIVE", option_sense );
  1825.             }
  1826.     YY_BREAK
  1827. case 41:
  1828. YY_RULE_SETUP
  1829. #line 225 "scan.l"
  1830. yytext_is_array = option_sense;
  1831.     YY_BREAK
  1832. case 42:
  1833. YY_RULE_SETUP
  1834. #line 226 "scan.l"
  1835. backing_up_report = option_sense;
  1836.     YY_BREAK
  1837. case 43:
  1838. YY_RULE_SETUP
  1839. #line 227 "scan.l"
  1840. interactive = ! option_sense;
  1841.     YY_BREAK
  1842. case 44:
  1843. YY_RULE_SETUP
  1844. #line 228 "scan.l"
  1845. C_plus_plus = option_sense;
  1846.     YY_BREAK
  1847. case 45:
  1848. YY_RULE_SETUP
  1849. #line 229 "scan.l"
  1850. caseins = ! option_sense;
  1851.     YY_BREAK
  1852. case 46:
  1853. YY_RULE_SETUP
  1854. #line 230 "scan.l"
  1855. caseins = option_sense;
  1856.     YY_BREAK
  1857. case 47:
  1858. YY_RULE_SETUP
  1859. #line 231 "scan.l"
  1860. ddebug = option_sense;
  1861.     YY_BREAK
  1862. case 48:
  1863. YY_RULE_SETUP
  1864. #line 232 "scan.l"
  1865. spprdflt = ! option_sense;
  1866.     YY_BREAK
  1867. case 49:
  1868. YY_RULE_SETUP
  1869. #line 233 "scan.l"
  1870. useecs = option_sense;
  1871.     YY_BREAK
  1872. case 50:
  1873. YY_RULE_SETUP
  1874. #line 234 "scan.l"
  1875. {
  1876.             useecs = usemecs = false;
  1877.             use_read = fullspd = true;
  1878.             }
  1879.     YY_BREAK
  1880. case 51:
  1881. YY_RULE_SETUP
  1882. #line 238 "scan.l"
  1883. {
  1884.             useecs = usemecs = false;
  1885.             use_read = fulltbl = true;
  1886.             }
  1887.     YY_BREAK
  1888. case 52:
  1889. YY_RULE_SETUP
  1890. #line 242 "scan.l"
  1891. ACTION_IFDEF("YY_NO_INPUT", ! option_sense);
  1892.     YY_BREAK
  1893. case 53:
  1894. YY_RULE_SETUP
  1895. #line 243 "scan.l"
  1896. interactive = option_sense;
  1897.     YY_BREAK
  1898. case 54:
  1899. YY_RULE_SETUP
  1900. #line 244 "scan.l"
  1901. lex_compat = option_sense;
  1902.     YY_BREAK
  1903. case 55:
  1904. YY_RULE_SETUP
  1905. #line 245 "scan.l"
  1906. {
  1907.             action_define( "YY_MAIN", option_sense );
  1908.             do_yywrap = ! option_sense;
  1909.             }
  1910.     YY_BREAK
  1911. case 56:
  1912. YY_RULE_SETUP
  1913. #line 249 "scan.l"
  1914. usemecs = option_sense;
  1915.     YY_BREAK
  1916. case 57:
  1917. YY_RULE_SETUP
  1918. #line 250 "scan.l"
  1919. {
  1920.             action_define( "YY_NEVER_INTERACTIVE", option_sense );
  1921.             }
  1922.     YY_BREAK
  1923. case 58:
  1924. YY_RULE_SETUP
  1925. #line 253 "scan.l"
  1926. performance_report += option_sense ? 1 : -1;
  1927.     YY_BREAK
  1928. case 59:
  1929. YY_RULE_SETUP
  1930. #line 254 "scan.l"
  1931. yytext_is_array = ! option_sense;
  1932.     YY_BREAK
  1933. case 60:
  1934. YY_RULE_SETUP
  1935. #line 255 "scan.l"
  1936. use_read = option_sense;
  1937.     YY_BREAK
  1938. case 61:
  1939. YY_RULE_SETUP
  1940. #line 256 "scan.l"
  1941. reject_really_used = option_sense;
  1942.     YY_BREAK
  1943. case 62:
  1944. YY_RULE_SETUP
  1945. #line 257 "scan.l"
  1946. action_define( "YY_STACK_USED", option_sense );
  1947.     YY_BREAK
  1948. case 63:
  1949. YY_RULE_SETUP
  1950. #line 258 "scan.l"
  1951. do_stdinit = option_sense;
  1952.     YY_BREAK
  1953. case 64:
  1954. YY_RULE_SETUP
  1955. #line 259 "scan.l"
  1956. use_stdout = option_sense;
  1957.     YY_BREAK
  1958. case 65:
  1959. YY_RULE_SETUP
  1960. #line 260 "scan.l"
  1961. ACTION_IFDEF("YY_NO_UNPUT", ! option_sense);
  1962.     YY_BREAK
  1963. case 66:
  1964. YY_RULE_SETUP
  1965. #line 261 "scan.l"
  1966. printstats = option_sense;
  1967.     YY_BREAK
  1968. case 67:
  1969. YY_RULE_SETUP
  1970. #line 262 "scan.l"
  1971. nowarn = ! option_sense;
  1972.     YY_BREAK
  1973. case 68:
  1974. YY_RULE_SETUP
  1975. #line 263 "scan.l"
  1976. do_yylineno = option_sense;
  1977.     YY_BREAK
  1978. case 69:
  1979. YY_RULE_SETUP
  1980. #line 264 "scan.l"
  1981. yymore_really_used = option_sense;
  1982.     YY_BREAK
  1983. case 70:
  1984. YY_RULE_SETUP
  1985. #line 265 "scan.l"
  1986. do_yywrap = option_sense;
  1987.     YY_BREAK
  1988. case 71:
  1989. YY_RULE_SETUP
  1990. #line 267 "scan.l"
  1991. ACTION_IFDEF("YY_NO_PUSH_STATE", ! option_sense);
  1992.     YY_BREAK
  1993. case 72:
  1994. YY_RULE_SETUP
  1995. #line 268 "scan.l"
  1996. ACTION_IFDEF("YY_NO_POP_STATE", ! option_sense);
  1997.     YY_BREAK
  1998. case 73:
  1999. YY_RULE_SETUP
  2000. #line 269 "scan.l"
  2001. ACTION_IFDEF("YY_NO_TOP_STATE", ! option_sense);
  2002.     YY_BREAK
  2003. case 74:
  2004. YY_RULE_SETUP
  2005. #line 271 "scan.l"
  2006. ACTION_IFDEF("YY_NO_SCAN_BUFFER", ! option_sense);
  2007.     YY_BREAK
  2008. case 75:
  2009. YY_RULE_SETUP
  2010. #line 272 "scan.l"
  2011. ACTION_IFDEF("YY_NO_SCAN_BYTES", ! option_sense);
  2012.     YY_BREAK
  2013. case 76:
  2014. YY_RULE_SETUP
  2015. #line 273 "scan.l"
  2016. ACTION_IFDEF("YY_NO_SCAN_STRING", ! option_sense);
  2017.     YY_BREAK
  2018. case 77:
  2019. YY_RULE_SETUP
  2020. #line 275 "scan.l"
  2021. return OPT_OUTFILE;
  2022.     YY_BREAK
  2023. case 78:
  2024. YY_RULE_SETUP
  2025. #line 276 "scan.l"
  2026. return OPT_PREFIX;
  2027.     YY_BREAK
  2028. case 79:
  2029. YY_RULE_SETUP
  2030. #line 277 "scan.l"
  2031. return OPT_YYCLASS;
  2032.     YY_BREAK
  2033. case 80:
  2034. YY_RULE_SETUP
  2035. #line 279 "scan.l"
  2036. {
  2037.             strcpy( nmstr, yytext + 1 );
  2038.             nmstr[strlen( nmstr ) - 1] = '\0';
  2039.             return NAME;
  2040.             }
  2041.     YY_BREAK
  2042. case 81:
  2043. YY_RULE_SETUP
  2044. #line 285 "scan.l"
  2045. {
  2046.             format_synerr( _( "unrecognized %%option: %s" ),
  2047.                 yytext );
  2048.             BEGIN(RECOVER);
  2049.             }
  2050.     YY_BREAK
  2051.  
  2052. case 82:
  2053. YY_RULE_SETUP
  2054. #line 292 "scan.l"
  2055. ++linenum; BEGIN(INITIAL);
  2056.     YY_BREAK
  2057.  
  2058. case 83:
  2059. YY_RULE_SETUP
  2060. #line 296 "scan.l"
  2061. ++bracelevel; yyless( 2 );    /* eat only %{ */
  2062.     YY_BREAK
  2063. case 84:
  2064. YY_RULE_SETUP
  2065. #line 297 "scan.l"
  2066. --bracelevel; yyless( 2 );    /* eat only %} */
  2067.     YY_BREAK
  2068. case 85:
  2069. YY_RULE_SETUP
  2070. #line 299 "scan.l"
  2071. ACTION_ECHO;    /* indented code in prolog */
  2072.     YY_BREAK
  2073. case 86:
  2074. YY_RULE_SETUP
  2075. #line 301 "scan.l"
  2076. {    /* non-indented code */
  2077.             if ( bracelevel <= 0 )
  2078.                 { /* not in %{ ... %} */
  2079.                 yyless( 0 );    /* put it all back */
  2080.                 yy_set_bol( 1 );
  2081.                 mark_prolog();
  2082.                 BEGIN(SECT2);
  2083.                 }
  2084.             else
  2085.                 ACTION_ECHO;
  2086.             }
  2087.     YY_BREAK
  2088. case 87:
  2089. YY_RULE_SETUP
  2090. #line 313 "scan.l"
  2091. ACTION_ECHO;
  2092.     YY_BREAK
  2093. case 88:
  2094. YY_RULE_SETUP
  2095. #line 314 "scan.l"
  2096. ++linenum; ACTION_ECHO;
  2097.     YY_BREAK
  2098. case YY_STATE_EOF(SECT2PROLOG):
  2099. #line 316 "scan.l"
  2100. {
  2101.             mark_prolog();
  2102.             sectnum = 0;
  2103.             yyterminate(); /* to stop the parser */
  2104.             }
  2105.     YY_BREAK
  2106.  
  2107.  
  2108. case 89:
  2109. YY_RULE_SETUP
  2110. #line 324 "scan.l"
  2111. ++linenum; /* allow blank lines in section 2 */
  2112.     YY_BREAK
  2113. case 90:
  2114. YY_RULE_SETUP
  2115. #line 326 "scan.l"
  2116. {
  2117.             indented_code = false;
  2118.             doing_codeblock = true;
  2119.             bracelevel = 1;
  2120.             BEGIN(PERCENT_BRACE_ACTION);
  2121.             }
  2122.     YY_BREAK
  2123. case 91:
  2124. YY_RULE_SETUP
  2125. #line 333 "scan.l"
  2126. BEGIN(SC); return '<';
  2127.     YY_BREAK
  2128. case 92:
  2129. YY_RULE_SETUP
  2130. #line 334 "scan.l"
  2131. return '^';
  2132.     YY_BREAK
  2133. case 93:
  2134. YY_RULE_SETUP
  2135. #line 335 "scan.l"
  2136. BEGIN(QUOTE); return '"';
  2137.     YY_BREAK
  2138. case 94:
  2139. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2140. yy_c_buf_p = yy_cp = yy_bp + 1;
  2141. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2142. YY_RULE_SETUP
  2143. #line 336 "scan.l"
  2144. BEGIN(NUM); return '{';
  2145.     YY_BREAK
  2146. case 95:
  2147. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2148. yy_c_buf_p = yy_cp = yy_bp + 1;
  2149. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2150. YY_RULE_SETUP
  2151. #line 337 "scan.l"
  2152. return '$';
  2153.     YY_BREAK
  2154. case 96:
  2155. YY_RULE_SETUP
  2156. #line 339 "scan.l"
  2157. {
  2158.             bracelevel = 1;
  2159.             BEGIN(PERCENT_BRACE_ACTION);
  2160.  
  2161.             if ( in_rule )
  2162.                 {
  2163.                 doing_rule_action = true;
  2164.                 in_rule = false;
  2165.                 return '\n';
  2166.                 }
  2167.             }
  2168.     YY_BREAK
  2169. case 97:
  2170. YY_RULE_SETUP
  2171. #line 350 "scan.l"
  2172. continued_action = true; ++linenum; return '\n';
  2173.     YY_BREAK
  2174. case 98:
  2175. YY_RULE_SETUP
  2176. #line 352 "scan.l"
  2177. {
  2178.             yyless( yyleng - 2 );    /* put back '/', '*' */
  2179.             bracelevel = 0;
  2180.             continued_action = false;
  2181.             BEGIN(ACTION);
  2182.             }
  2183.     YY_BREAK
  2184. case 99:
  2185. YY_RULE_SETUP
  2186. #line 359 "scan.l"
  2187. /* allow indented rules */
  2188.     YY_BREAK
  2189. case 100:
  2190. YY_RULE_SETUP
  2191. #line 361 "scan.l"
  2192. {
  2193.             /* This rule is separate from the one below because
  2194.              * otherwise we get variable trailing context, so
  2195.              * we can't build the scanner using -{f,F}.
  2196.              */
  2197.             bracelevel = 0;
  2198.             continued_action = false;
  2199.             BEGIN(ACTION);
  2200.  
  2201.             if ( in_rule )
  2202.                 {
  2203.                 doing_rule_action = true;
  2204.                 in_rule = false;
  2205.                 return '\n';
  2206.                 }
  2207.             }
  2208.     YY_BREAK
  2209. case 101:
  2210. YY_RULE_SETUP
  2211. #line 378 "scan.l"
  2212. {
  2213.             bracelevel = 0;
  2214.             continued_action = false;
  2215.             BEGIN(ACTION);
  2216.             unput( '\n' );    /* so <ACTION> sees it */
  2217.  
  2218.             if ( in_rule )
  2219.                 {
  2220.                 doing_rule_action = true;
  2221.                 in_rule = false;
  2222.                 return '\n';
  2223.                 }
  2224.             }
  2225.     YY_BREAK
  2226. case 102:
  2227. #line 393 "scan.l"
  2228. case 103:
  2229. YY_RULE_SETUP
  2230. #line 393 "scan.l"
  2231. return EOF_OP;
  2232.     YY_BREAK
  2233. case 104:
  2234. YY_RULE_SETUP
  2235. #line 395 "scan.l"
  2236. {
  2237.             sectnum = 3;
  2238.             BEGIN(SECT3);
  2239.             yyterminate(); /* to stop the parser */
  2240.             }
  2241.     YY_BREAK
  2242. case 105:
  2243. YY_RULE_SETUP
  2244. #line 401 "scan.l"
  2245. {
  2246.             int cclval;
  2247.  
  2248.             strcpy( nmstr, yytext );
  2249.  
  2250.             /* Check to see if we've already encountered this
  2251.              * ccl.
  2252.              */
  2253.             if ( (cclval = ccllookup( (Char *) nmstr )) != 0 )
  2254.                 {
  2255.                 if ( input() != ']' )
  2256.                     synerr( _( "bad character class" ) );
  2257.  
  2258.                 yylval = cclval;
  2259.                 ++cclreuse;
  2260.                 return PREVCCL;
  2261.                 }
  2262.             else
  2263.                 {
  2264.                 /* We fudge a bit.  We know that this ccl will
  2265.                  * soon be numbered as lastccl + 1 by cclinit.
  2266.                  */
  2267.                 cclinstal( (Char *) nmstr, lastccl + 1 );
  2268.  
  2269.                 /* Push back everything but the leading bracket
  2270.                  * so the ccl can be rescanned.
  2271.                  */
  2272.                 yyless( 1 );
  2273.  
  2274.                 BEGIN(FIRSTCCL);
  2275.                 return '[';
  2276.                 }
  2277.             }
  2278.     YY_BREAK
  2279. case 106:
  2280. YY_RULE_SETUP
  2281. #line 435 "scan.l"
  2282. {
  2283.             register Char *nmdefptr;
  2284.             Char *ndlookup();
  2285.  
  2286.             strcpy( nmstr, yytext + 1 );
  2287.             nmstr[yyleng - 2] = '\0';  /* chop trailing brace */
  2288.  
  2289.             if ( (nmdefptr = ndlookup( nmstr )) == 0 )
  2290.                 format_synerr(
  2291.                     _( "undefined definition {%s}" ),
  2292.                         nmstr );
  2293.  
  2294.             else
  2295.                 { /* push back name surrounded by ()'s */
  2296.                 int len = strlen( (char *) nmdefptr );
  2297.  
  2298.                 if ( lex_compat || nmdefptr[0] == '^' ||
  2299.                      (len > 0 && nmdefptr[len - 1] == '$') )
  2300.                     { /* don't use ()'s after all */
  2301.                     PUT_BACK_STRING((char *) nmdefptr, 0);
  2302.  
  2303.                     if ( nmdefptr[0] == '^' )
  2304.                         BEGIN(CARETISBOL);
  2305.                     }
  2306.  
  2307.                 else
  2308.                     {
  2309.                     unput(')');
  2310.                     PUT_BACK_STRING((char *) nmdefptr, 0);
  2311.                     unput('(');
  2312.                     }
  2313.                 }
  2314.             }
  2315.     YY_BREAK
  2316. case 107:
  2317. YY_RULE_SETUP
  2318. #line 469 "scan.l"
  2319. return (unsigned char) yytext[0];
  2320.     YY_BREAK
  2321. case 108:
  2322. YY_RULE_SETUP
  2323. #line 470 "scan.l"
  2324. RETURNCHAR;
  2325.     YY_BREAK
  2326.  
  2327.  
  2328. case 109:
  2329. YY_RULE_SETUP
  2330. #line 475 "scan.l"
  2331. return (unsigned char) yytext[0];
  2332.     YY_BREAK
  2333. case 110:
  2334. YY_RULE_SETUP
  2335. #line 476 "scan.l"
  2336. BEGIN(SECT2); return '>';
  2337.     YY_BREAK
  2338. case 111:
  2339. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2340. yy_c_buf_p = yy_cp = yy_bp + 1;
  2341. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2342. YY_RULE_SETUP
  2343. #line 477 "scan.l"
  2344. BEGIN(CARETISBOL); return '>';
  2345.     YY_BREAK
  2346. case 112:
  2347. YY_RULE_SETUP
  2348. #line 478 "scan.l"
  2349. RETURNNAME;
  2350.     YY_BREAK
  2351. case 113:
  2352. YY_RULE_SETUP
  2353. #line 479 "scan.l"
  2354. {
  2355.             format_synerr( _( "bad <start condition>: %s" ),
  2356.                 yytext );
  2357.             }
  2358.     YY_BREAK
  2359.  
  2360. case 114:
  2361. YY_RULE_SETUP
  2362. #line 485 "scan.l"
  2363. BEGIN(SECT2); return '^';
  2364.     YY_BREAK
  2365.  
  2366. case 115:
  2367. YY_RULE_SETUP
  2368. #line 489 "scan.l"
  2369. RETURNCHAR;
  2370.     YY_BREAK
  2371. case 116:
  2372. YY_RULE_SETUP
  2373. #line 490 "scan.l"
  2374. BEGIN(SECT2); return '"';
  2375.     YY_BREAK
  2376. case 117:
  2377. YY_RULE_SETUP
  2378. #line 492 "scan.l"
  2379. {
  2380.             synerr( _( "missing quote" ) );
  2381.             BEGIN(SECT2);
  2382.             ++linenum;
  2383.             return '"';
  2384.             }
  2385.     YY_BREAK
  2386.  
  2387.  
  2388. case 118:
  2389. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2390. yy_c_buf_p = yy_cp = yy_bp + 1;
  2391. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2392. YY_RULE_SETUP
  2393. #line 502 "scan.l"
  2394. BEGIN(CCL); return '^';
  2395.     YY_BREAK
  2396. case 119:
  2397. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2398. yy_c_buf_p = yy_cp = yy_bp + 1;
  2399. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2400. YY_RULE_SETUP
  2401. #line 503 "scan.l"
  2402. return '^';
  2403.     YY_BREAK
  2404. case 120:
  2405. YY_RULE_SETUP
  2406. #line 504 "scan.l"
  2407. BEGIN(CCL); RETURNCHAR;
  2408.     YY_BREAK
  2409.  
  2410.  
  2411. case 121:
  2412. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2413. yy_c_buf_p = yy_cp = yy_bp + 1;
  2414. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2415. YY_RULE_SETUP
  2416. #line 508 "scan.l"
  2417. return '-';
  2418.     YY_BREAK
  2419. case 122:
  2420. YY_RULE_SETUP
  2421. #line 509 "scan.l"
  2422. RETURNCHAR;
  2423.     YY_BREAK
  2424. case 123:
  2425. YY_RULE_SETUP
  2426. #line 510 "scan.l"
  2427. BEGIN(SECT2); return ']';
  2428.     YY_BREAK
  2429. case 124:
  2430. YY_RULE_SETUP
  2431. #line 511 "scan.l"
  2432. {
  2433.             synerr( _( "bad character class" ) );
  2434.             BEGIN(SECT2);
  2435.             return ']';
  2436.             }
  2437.     YY_BREAK
  2438.  
  2439.  
  2440. case 125:
  2441. YY_RULE_SETUP
  2442. #line 519 "scan.l"
  2443. BEGIN(CCL); return CCE_ALNUM;
  2444.     YY_BREAK
  2445. case 126:
  2446. YY_RULE_SETUP
  2447. #line 520 "scan.l"
  2448. BEGIN(CCL); return CCE_ALPHA;
  2449.     YY_BREAK
  2450. case 127:
  2451. YY_RULE_SETUP
  2452. #line 521 "scan.l"
  2453. BEGIN(CCL); return CCE_BLANK;
  2454.     YY_BREAK
  2455. case 128:
  2456. YY_RULE_SETUP
  2457. #line 522 "scan.l"
  2458. BEGIN(CCL); return CCE_CNTRL;
  2459.     YY_BREAK
  2460. case 129:
  2461. YY_RULE_SETUP
  2462. #line 523 "scan.l"
  2463. BEGIN(CCL); return CCE_DIGIT;
  2464.     YY_BREAK
  2465. case 130:
  2466. YY_RULE_SETUP
  2467. #line 524 "scan.l"
  2468. BEGIN(CCL); return CCE_GRAPH;
  2469.     YY_BREAK
  2470. case 131:
  2471. YY_RULE_SETUP
  2472. #line 525 "scan.l"
  2473. BEGIN(CCL); return CCE_LOWER;
  2474.     YY_BREAK
  2475. case 132:
  2476. YY_RULE_SETUP
  2477. #line 526 "scan.l"
  2478. BEGIN(CCL); return CCE_PRINT;
  2479.     YY_BREAK
  2480. case 133:
  2481. YY_RULE_SETUP
  2482. #line 527 "scan.l"
  2483. BEGIN(CCL); return CCE_PUNCT;
  2484.     YY_BREAK
  2485. case 134:
  2486. YY_RULE_SETUP
  2487. #line 528 "scan.l"
  2488. BEGIN(CCL); return CCE_SPACE;
  2489.     YY_BREAK
  2490. case 135:
  2491. YY_RULE_SETUP
  2492. #line 529 "scan.l"
  2493. BEGIN(CCL); return CCE_UPPER;
  2494.     YY_BREAK
  2495. case 136:
  2496. YY_RULE_SETUP
  2497. #line 530 "scan.l"
  2498. BEGIN(CCL); return CCE_XDIGIT;
  2499.     YY_BREAK
  2500. case 137:
  2501. YY_RULE_SETUP
  2502. #line 531 "scan.l"
  2503. {
  2504.             format_synerr(
  2505.                 _( "bad character class expression: %s" ),
  2506.                     yytext );
  2507.             BEGIN(CCL); return CCE_ALNUM;
  2508.             }
  2509.     YY_BREAK
  2510.  
  2511.  
  2512. case 138:
  2513. YY_RULE_SETUP
  2514. #line 540 "scan.l"
  2515. {
  2516.             yylval = myctoi( yytext );
  2517.             return NUMBER;
  2518.             }
  2519.     YY_BREAK
  2520. case 139:
  2521. YY_RULE_SETUP
  2522. #line 545 "scan.l"
  2523. return ',';
  2524.     YY_BREAK
  2525. case 140:
  2526. YY_RULE_SETUP
  2527. #line 546 "scan.l"
  2528. BEGIN(SECT2); return '}';
  2529.     YY_BREAK
  2530. case 141:
  2531. YY_RULE_SETUP
  2532. #line 548 "scan.l"
  2533. {
  2534.             synerr( _( "bad character inside {}'s" ) );
  2535.             BEGIN(SECT2);
  2536.             return '}';
  2537.             }
  2538.     YY_BREAK
  2539. case 142:
  2540. YY_RULE_SETUP
  2541. #line 554 "scan.l"
  2542. {
  2543.             synerr( _( "missing }" ) );
  2544.             BEGIN(SECT2);
  2545.             ++linenum;
  2546.             return '}';
  2547.             }
  2548.     YY_BREAK
  2549.  
  2550.  
  2551. case 143:
  2552. YY_RULE_SETUP
  2553. #line 564 "scan.l"
  2554. bracelevel = 0;
  2555.     YY_BREAK
  2556. case 144:
  2557. YY_RULE_SETUP
  2558. #line 566 "scan.l"
  2559. ACTION_ECHO; yy_push_state( COMMENT );
  2560.     YY_BREAK
  2561.  
  2562. case 145:
  2563. YY_RULE_SETUP
  2564. #line 569 "scan.l"
  2565. {
  2566.             ACTION_ECHO;
  2567.             CHECK_REJECT(yytext);
  2568.             }
  2569.     YY_BREAK
  2570. case 146:
  2571. YY_RULE_SETUP
  2572. #line 573 "scan.l"
  2573. {
  2574.             ACTION_ECHO;
  2575.             CHECK_YYMORE(yytext);
  2576.             }
  2577.     YY_BREAK
  2578.  
  2579. case 147:
  2580. YY_RULE_SETUP
  2581. #line 579 "scan.l"
  2582. ACTION_ECHO;
  2583.     YY_BREAK
  2584. case 148:
  2585. YY_RULE_SETUP
  2586. #line 580 "scan.l"
  2587. {
  2588.             ++linenum;
  2589.             ACTION_ECHO;
  2590.             if ( bracelevel == 0 ||
  2591.                  (doing_codeblock && indented_code) )
  2592.                 {
  2593.                 if ( doing_rule_action )
  2594.                     add_action( "\tYY_BREAK\n" );
  2595.  
  2596.                 doing_rule_action = doing_codeblock = false;
  2597.                 BEGIN(SECT2);
  2598.                 }
  2599.             }
  2600.     YY_BREAK
  2601.  
  2602. /* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */
  2603.  
  2604. case 149:
  2605. YY_RULE_SETUP
  2606. #line 598 "scan.l"
  2607. ACTION_ECHO; ++bracelevel;
  2608.     YY_BREAK
  2609. case 150:
  2610. YY_RULE_SETUP
  2611. #line 599 "scan.l"
  2612. ACTION_ECHO; --bracelevel;
  2613.     YY_BREAK
  2614. case 151:
  2615. YY_RULE_SETUP
  2616. #line 600 "scan.l"
  2617. ACTION_ECHO;
  2618.     YY_BREAK
  2619. case 152:
  2620. YY_RULE_SETUP
  2621. #line 601 "scan.l"
  2622. ACTION_ECHO;
  2623.     YY_BREAK
  2624. case 153:
  2625. YY_RULE_SETUP
  2626. #line 602 "scan.l"
  2627. ACTION_ECHO; /* character constant */
  2628.     YY_BREAK
  2629. case 154:
  2630. YY_RULE_SETUP
  2631. #line 603 "scan.l"
  2632. ACTION_ECHO; BEGIN(ACTION_STRING);
  2633.     YY_BREAK
  2634. case 155:
  2635. YY_RULE_SETUP
  2636. #line 604 "scan.l"
  2637. {
  2638.             ++linenum;
  2639.             ACTION_ECHO;
  2640.             if ( bracelevel == 0 )
  2641.                 {
  2642.                 if ( doing_rule_action )
  2643.                     add_action( "\tYY_BREAK\n" );
  2644.  
  2645.                 doing_rule_action = false;
  2646.                 BEGIN(SECT2);
  2647.                 }
  2648.             }
  2649.     YY_BREAK
  2650. case 156:
  2651. YY_RULE_SETUP
  2652. #line 616 "scan.l"
  2653. ACTION_ECHO;
  2654.     YY_BREAK
  2655.  
  2656.  
  2657. case 157:
  2658. YY_RULE_SETUP
  2659. #line 620 "scan.l"
  2660. ACTION_ECHO;
  2661.     YY_BREAK
  2662. case 158:
  2663. YY_RULE_SETUP
  2664. #line 621 "scan.l"
  2665. ACTION_ECHO;
  2666.     YY_BREAK
  2667. case 159:
  2668. YY_RULE_SETUP
  2669. #line 622 "scan.l"
  2670. ++linenum; ACTION_ECHO;
  2671.     YY_BREAK
  2672. case 160:
  2673. YY_RULE_SETUP
  2674. #line 623 "scan.l"
  2675. ACTION_ECHO; BEGIN(ACTION);
  2676.     YY_BREAK
  2677. case 161:
  2678. YY_RULE_SETUP
  2679. #line 624 "scan.l"
  2680. ACTION_ECHO;
  2681.     YY_BREAK
  2682.  
  2683. case YY_STATE_EOF(COMMENT):
  2684. case YY_STATE_EOF(ACTION):
  2685. case YY_STATE_EOF(ACTION_STRING):
  2686. #line 627 "scan.l"
  2687. {
  2688.             synerr( _( "EOF encountered inside an action" ) );
  2689.             yyterminate();
  2690.             }
  2691.     YY_BREAK
  2692. case 162:
  2693. YY_RULE_SETUP
  2694. #line 633 "scan.l"
  2695. {
  2696.             yylval = myesc( (Char *) yytext );
  2697.  
  2698.             if ( YY_START == FIRSTCCL )
  2699.                 BEGIN(CCL);
  2700.  
  2701.             return CHAR;
  2702.             }
  2703.     YY_BREAK
  2704.  
  2705. case 163:
  2706. YY_RULE_SETUP
  2707. #line 644 "scan.l"
  2708. ECHO;
  2709.     YY_BREAK
  2710. case YY_STATE_EOF(SECT3):
  2711. #line 645 "scan.l"
  2712. sectnum = 0; yyterminate();
  2713.     YY_BREAK
  2714.  
  2715. case 164:
  2716. YY_RULE_SETUP
  2717. #line 648 "scan.l"
  2718. format_synerr( _( "bad character: %s" ), yytext );
  2719.     YY_BREAK
  2720. case 165:
  2721. YY_RULE_SETUP
  2722. #line 650 "scan.l"
  2723. YY_FATAL_ERROR( "flex scanner jammed" );
  2724.     YY_BREAK
  2725. #line 2726 "scan.c"
  2726. case YY_STATE_EOF(INITIAL):
  2727. case YY_STATE_EOF(SECT2):
  2728. case YY_STATE_EOF(CODEBLOCK):
  2729. case YY_STATE_EOF(PICKUPDEF):
  2730. case YY_STATE_EOF(SC):
  2731. case YY_STATE_EOF(CARETISBOL):
  2732. case YY_STATE_EOF(NUM):
  2733. case YY_STATE_EOF(QUOTE):
  2734. case YY_STATE_EOF(FIRSTCCL):
  2735. case YY_STATE_EOF(CCL):
  2736. case YY_STATE_EOF(RECOVER):
  2737. case YY_STATE_EOF(PERCENT_BRACE_ACTION):
  2738. case YY_STATE_EOF(OPTION):
  2739. case YY_STATE_EOF(LINEDIR):
  2740.     yyterminate();
  2741.  
  2742.     case YY_END_OF_BUFFER:
  2743.         {
  2744.         /* Amount of text matched not including the EOB char. */
  2745.         int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
  2746.  
  2747.         /* Undo the effects of YY_DO_BEFORE_ACTION. */
  2748.         *yy_cp = yy_hold_char;
  2749.  
  2750.         if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
  2751.             {
  2752.             /* We're scanning a new file or input source.  It's
  2753.              * possible that this happened because the user
  2754.              * just pointed yyin at a new source and called
  2755.              * yylex().  If so, then we have to assure
  2756.              * consistency between yy_current_buffer and our
  2757.              * globals.  Here is the right place to do so, because
  2758.              * this is the first action (other than possibly a
  2759.              * back-up) that will match for the new input source.
  2760.              */
  2761.             yy_n_chars = yy_current_buffer->yy_n_chars;
  2762.             yy_current_buffer->yy_input_file = yyin;
  2763.             yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
  2764.             }
  2765.  
  2766.         /* Note that here we test for yy_c_buf_p "<=" to the position
  2767.          * of the first EOB in the buffer, since yy_c_buf_p will
  2768.          * already have been incremented past the NUL character
  2769.          * (since all states make transitions on EOB to the
  2770.          * end-of-buffer state).  Contrast this with the test
  2771.          * in input().
  2772.          */
  2773.         if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  2774.             { /* This was really a NUL. */
  2775.             yy_state_type yy_next_state;
  2776.  
  2777.             yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
  2778.  
  2779.             yy_current_state = yy_get_previous_state();
  2780.  
  2781.             /* Okay, we're now positioned to make the NUL
  2782.              * transition.  We couldn't have
  2783.              * yy_get_previous_state() go ahead and do it
  2784.              * for us because it doesn't know how to deal
  2785.              * with the possibility of jamming (and we don't
  2786.              * want to build jamming into it because then it
  2787.              * will run more slowly).
  2788.              */
  2789.  
  2790.             yy_next_state = yy_try_NUL_trans( yy_current_state );
  2791.  
  2792.             yy_bp = yytext_ptr + YY_MORE_ADJ;
  2793.  
  2794.             if ( yy_next_state )
  2795.                 {
  2796.                 /* Consume the NUL. */
  2797.                 yy_cp = ++yy_c_buf_p;
  2798.                 yy_current_state = yy_next_state;
  2799.                 goto yy_match;
  2800.                 }
  2801.  
  2802.             else
  2803.                 {
  2804.                 yy_cp = yy_c_buf_p;
  2805.                 goto yy_find_action;
  2806.                 }
  2807.             }
  2808.  
  2809.         else switch ( yy_get_next_buffer() )
  2810.             {
  2811.             case EOB_ACT_END_OF_FILE:
  2812.                 {
  2813.                 yy_did_buffer_switch_on_eof = 0;
  2814.  
  2815.                 if ( yywrap() )
  2816.                     {
  2817.                     /* Note: because we've taken care in
  2818.                      * yy_get_next_buffer() to have set up
  2819.                      * yytext, we can now set up
  2820.                      * yy_c_buf_p so that if some total
  2821.                      * hoser (like flex itself) wants to
  2822.                      * call the scanner after we return the
  2823.                      * YY_NULL, it'll still work - another
  2824.                      * YY_NULL will get returned.
  2825.                      */
  2826.                     yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
  2827.  
  2828.                     yy_act = YY_STATE_EOF(YY_START);
  2829.                     goto do_action;
  2830.                     }
  2831.  
  2832.                 else
  2833.                     {
  2834.                     if ( ! yy_did_buffer_switch_on_eof )
  2835.                         YY_NEW_FILE;
  2836.                     }
  2837.                 break;
  2838.                 }
  2839.  
  2840.             case EOB_ACT_CONTINUE_SCAN:
  2841.                 yy_c_buf_p =
  2842.                     yytext_ptr + yy_amount_of_matched_text;
  2843.  
  2844.                 yy_current_state = yy_get_previous_state();
  2845.  
  2846.                 yy_cp = yy_c_buf_p;
  2847.                 yy_bp = yytext_ptr + YY_MORE_ADJ;
  2848.                 goto yy_match;
  2849.  
  2850.             case EOB_ACT_LAST_MATCH:
  2851.                 yy_c_buf_p =
  2852.                 &yy_current_buffer->yy_ch_buf[yy_n_chars];
  2853.  
  2854.                 yy_current_state = yy_get_previous_state();
  2855.  
  2856.                 yy_cp = yy_c_buf_p;
  2857.                 yy_bp = yytext_ptr + YY_MORE_ADJ;
  2858.                 goto yy_find_action;
  2859.             }
  2860.         break;
  2861.         }
  2862.  
  2863.     default:
  2864.         YY_FATAL_ERROR(
  2865.             "fatal flex scanner internal error--no action found" );
  2866.     } /* end of action switch */
  2867.         } /* end of scanning one token */
  2868.     } /* end of yylex */
  2869.  
  2870.  
  2871. /* yy_get_next_buffer - try to read in a new buffer
  2872.  *
  2873.  * Returns a code representing an action:
  2874.  *    EOB_ACT_LAST_MATCH -
  2875.  *    EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  2876.  *    EOB_ACT_END_OF_FILE - end of file
  2877.  */
  2878.  
  2879. static int yy_get_next_buffer()
  2880.     {
  2881.     register char *dest = yy_current_buffer->yy_ch_buf;
  2882.     register char *source = yytext_ptr;
  2883.     register int number_to_move, i;
  2884.     int ret_val;
  2885.  
  2886.     if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
  2887.         YY_FATAL_ERROR(
  2888.         "fatal flex scanner internal error--end of buffer missed" );
  2889.  
  2890.     if ( yy_current_buffer->yy_fill_buffer == 0 )
  2891.         { /* Don't try to fill the buffer, so this is an EOF. */
  2892.         if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
  2893.             {
  2894.             /* We matched a singled characater, the EOB, so
  2895.              * treat this as a final EOF.
  2896.              */
  2897.             return EOB_ACT_END_OF_FILE;
  2898.             }
  2899.  
  2900.         else
  2901.             {
  2902.             /* We matched some text prior to the EOB, first
  2903.              * process it.
  2904.              */
  2905.             return EOB_ACT_LAST_MATCH;
  2906.             }
  2907.         }
  2908.  
  2909.     /* Try to read more data. */
  2910.  
  2911.     /* First move last chars to start of buffer. */
  2912.     number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
  2913.  
  2914.     for ( i = 0; i < number_to_move; ++i )
  2915.         *(dest++) = *(source++);
  2916.  
  2917.     if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
  2918.         /* don't do the read, it's not guaranteed to return an EOF,
  2919.          * just force an EOF
  2920.          */
  2921.         yy_n_chars = 0;
  2922.  
  2923.     else
  2924.         {
  2925.         int num_to_read =
  2926.             yy_current_buffer->yy_buf_size - number_to_move - 1;
  2927.  
  2928.         while ( num_to_read <= 0 )
  2929.             { /* Not enough room in the buffer - grow it. */
  2930. #ifdef YY_USES_REJECT
  2931.             YY_FATAL_ERROR(
  2932. "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
  2933. #else
  2934.  
  2935.             /* just a shorter name for the current buffer */
  2936.             YY_BUFFER_STATE b = yy_current_buffer;
  2937.  
  2938.             int yy_c_buf_p_offset =
  2939.                 (int) (yy_c_buf_p - b->yy_ch_buf);
  2940.  
  2941.             if ( b->yy_is_our_buffer )
  2942.                 {
  2943.                 int new_size = b->yy_buf_size * 2;
  2944.  
  2945.                 if ( new_size <= 0 )
  2946.                     b->yy_buf_size += b->yy_buf_size / 8;
  2947.                 else
  2948.                     b->yy_buf_size *= 2;
  2949.  
  2950.                 b->yy_ch_buf = (char *)
  2951.                     /* Include room in for 2 EOB chars. */
  2952.                     yy_flex_realloc( (void *) b->yy_ch_buf,
  2953.                              b->yy_buf_size + 2 );
  2954.                 }
  2955.             else
  2956.                 /* Can't grow it, we don't own it. */
  2957.                 b->yy_ch_buf = 0;
  2958.  
  2959.             if ( ! b->yy_ch_buf )
  2960.                 YY_FATAL_ERROR(
  2961.                 "fatal error - scanner input buffer overflow" );
  2962.  
  2963.             yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
  2964.  
  2965.             num_to_read = yy_current_buffer->yy_buf_size -
  2966.                         number_to_move - 1;
  2967. #endif
  2968.             }
  2969.  
  2970.         if ( num_to_read > YY_READ_BUF_SIZE )
  2971.             num_to_read = YY_READ_BUF_SIZE;
  2972.  
  2973.         /* Read in more data. */
  2974.         YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
  2975.             yy_n_chars, num_to_read );
  2976.         }
  2977.  
  2978.     if ( yy_n_chars == 0 )
  2979.         {
  2980.         if ( number_to_move == YY_MORE_ADJ )
  2981.             {
  2982.             ret_val = EOB_ACT_END_OF_FILE;
  2983.             yyrestart( yyin );
  2984.             }
  2985.  
  2986.         else
  2987.             {
  2988.             ret_val = EOB_ACT_LAST_MATCH;
  2989.             yy_current_buffer->yy_buffer_status =
  2990.                 YY_BUFFER_EOF_PENDING;
  2991.             }
  2992.         }
  2993.  
  2994.     else
  2995.         ret_val = EOB_ACT_CONTINUE_SCAN;
  2996.  
  2997.     yy_n_chars += number_to_move;
  2998.     yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  2999.     yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  3000.  
  3001.     yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
  3002.  
  3003.     return ret_val;
  3004.     }
  3005.  
  3006.  
  3007. /* yy_get_previous_state - get the state just before the EOB char was reached */
  3008.  
  3009. static yy_state_type yy_get_previous_state()
  3010.     {
  3011.     register yy_state_type yy_current_state;
  3012.     register char *yy_cp;
  3013.  
  3014.     yy_current_state = yy_start;
  3015.     yy_current_state += YY_AT_BOL();
  3016.  
  3017.     for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
  3018.         {
  3019.         register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
  3020.         if ( yy_accept[yy_current_state] )
  3021.             {
  3022.             yy_last_accepting_state = yy_current_state;
  3023.             yy_last_accepting_cpos = yy_cp;
  3024.             }
  3025.         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  3026.             {
  3027.             yy_current_state = (int) yy_def[yy_current_state];
  3028.             if ( yy_current_state >= 769 )
  3029.                 yy_c = yy_meta[(unsigned int) yy_c];
  3030.             }
  3031.         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  3032.         }
  3033.  
  3034.     return yy_current_state;
  3035.     }
  3036.  
  3037.  
  3038. /* yy_try_NUL_trans - try to make a transition on the NUL character
  3039.  *
  3040.  * synopsis
  3041.  *    next_state = yy_try_NUL_trans( current_state );
  3042.  */
  3043.  
  3044. #ifdef YY_USE_PROTOS
  3045. static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
  3046. #else
  3047. static yy_state_type yy_try_NUL_trans( yy_current_state )
  3048. yy_state_type yy_current_state;
  3049. #endif
  3050.     {
  3051.     register int yy_is_jam;
  3052.     register char *yy_cp = yy_c_buf_p;
  3053.  
  3054.     register YY_CHAR yy_c = 1;
  3055.     if ( yy_accept[yy_current_state] )
  3056.         {
  3057.         yy_last_accepting_state = yy_current_state;
  3058.         yy_last_accepting_cpos = yy_cp;
  3059.         }
  3060.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  3061.         {
  3062.         yy_current_state = (int) yy_def[yy_current_state];
  3063.         if ( yy_current_state >= 769 )
  3064.             yy_c = yy_meta[(unsigned int) yy_c];
  3065.         }
  3066.     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  3067.     yy_is_jam = (yy_current_state == 768);
  3068.  
  3069.     return yy_is_jam ? 0 : yy_current_state;
  3070.     }
  3071.  
  3072.  
  3073. #ifdef YY_USE_PROTOS
  3074. static void yyunput( int c, register char *yy_bp )
  3075. #else
  3076. static void yyunput( c, yy_bp )
  3077. int c;
  3078. register char *yy_bp;
  3079. #endif
  3080.     {
  3081.     register char *yy_cp = yy_c_buf_p;
  3082.  
  3083.     /* undo effects of setting up yytext */
  3084.     *yy_cp = yy_hold_char;
  3085.  
  3086.     if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  3087.         { /* need to shift things up to make room */
  3088.         /* +2 for EOB chars. */
  3089.         register int number_to_move = yy_n_chars + 2;
  3090.         register char *dest = &yy_current_buffer->yy_ch_buf[
  3091.                     yy_current_buffer->yy_buf_size + 2];
  3092.         register char *source =
  3093.                 &yy_current_buffer->yy_ch_buf[number_to_move];
  3094.  
  3095.         while ( source > yy_current_buffer->yy_ch_buf )
  3096.             *--dest = *--source;
  3097.  
  3098.         yy_cp += (int) (dest - source);
  3099.         yy_bp += (int) (dest - source);
  3100.         yy_n_chars = yy_current_buffer->yy_buf_size;
  3101.  
  3102.         if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  3103.             YY_FATAL_ERROR( "flex scanner push-back overflow" );
  3104.         }
  3105.  
  3106.     *--yy_cp = (char) c;
  3107.  
  3108.  
  3109.     yytext_ptr = yy_bp;
  3110.     yy_hold_char = *yy_cp;
  3111.     yy_c_buf_p = yy_cp;
  3112.     }
  3113.  
  3114.  
  3115. #ifdef __cplusplus
  3116. static int yyinput()
  3117. #else
  3118. static int input()
  3119. #endif
  3120.     {
  3121.     int c;
  3122.  
  3123.     *yy_c_buf_p = yy_hold_char;
  3124.  
  3125.     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  3126.         {
  3127.         /* yy_c_buf_p now points to the character we want to return.
  3128.          * If this occurs *before* the EOB characters, then it's a
  3129.          * valid NUL; if not, then we've hit the end of the buffer.
  3130.          */
  3131.         if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  3132.             /* This was really a NUL. */
  3133.             *yy_c_buf_p = '\0';
  3134.  
  3135.         else
  3136.             { /* need more input */
  3137.             yytext_ptr = yy_c_buf_p;
  3138.             ++yy_c_buf_p;
  3139.  
  3140.             switch ( yy_get_next_buffer() )
  3141.                 {
  3142.                 case EOB_ACT_END_OF_FILE:
  3143.                     {
  3144.                     if ( yywrap() )
  3145.                         {
  3146.                         yy_c_buf_p =
  3147.                         yytext_ptr + YY_MORE_ADJ;
  3148.                         return EOF;
  3149.                         }
  3150.  
  3151.                     if ( ! yy_did_buffer_switch_on_eof )
  3152.                         YY_NEW_FILE;
  3153. #ifdef __cplusplus
  3154.                     return yyinput();
  3155. #else
  3156.                     return input();
  3157. #endif
  3158.                     }
  3159.  
  3160.                 case EOB_ACT_CONTINUE_SCAN:
  3161.                     yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
  3162.                     break;
  3163.  
  3164.                 case EOB_ACT_LAST_MATCH:
  3165. #ifdef __cplusplus
  3166.                     YY_FATAL_ERROR(
  3167.                     "unexpected last match in yyinput()" );
  3168. #else
  3169.                     YY_FATAL_ERROR(
  3170.                     "unexpected last match in input()" );
  3171. #endif
  3172.                 }
  3173.             }
  3174.         }
  3175.  
  3176.     c = *(unsigned char *) yy_c_buf_p;    /* cast for 8-bit char's */
  3177.     *yy_c_buf_p = '\0';    /* preserve yytext */
  3178.     yy_hold_char = *++yy_c_buf_p;
  3179.  
  3180.     yy_current_buffer->yy_at_bol = (c == '\n');
  3181.  
  3182.     return c;
  3183.     }
  3184.  
  3185.  
  3186. #ifdef YY_USE_PROTOS
  3187. void yyrestart( FILE *input_file )
  3188. #else
  3189. void yyrestart( input_file )
  3190. FILE *input_file;
  3191. #endif
  3192.     {
  3193.     if ( ! yy_current_buffer )
  3194.         yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
  3195.  
  3196.     yy_init_buffer( yy_current_buffer, input_file );
  3197.     yy_load_buffer_state();
  3198.     }
  3199.  
  3200.  
  3201. #ifdef YY_USE_PROTOS
  3202. void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
  3203. #else
  3204. void yy_switch_to_buffer( new_buffer )
  3205. YY_BUFFER_STATE new_buffer;
  3206. #endif
  3207.     {
  3208.     if ( yy_current_buffer == new_buffer )
  3209.         return;
  3210.  
  3211.     if ( yy_current_buffer )
  3212.         {
  3213.         /* Flush out information for old buffer. */
  3214.         *yy_c_buf_p = yy_hold_char;
  3215.         yy_current_buffer->yy_buf_pos = yy_c_buf_p;
  3216.         yy_current_buffer->yy_n_chars = yy_n_chars;
  3217.         }
  3218.  
  3219.     yy_current_buffer = new_buffer;
  3220.     yy_load_buffer_state();
  3221.  
  3222.     /* We don't actually know whether we did this switch during
  3223.      * EOF (yywrap()) processing, but the only time this flag
  3224.      * is looked at is after yywrap() is called, so it's safe
  3225.      * to go ahead and always set it.
  3226.      */
  3227.     yy_did_buffer_switch_on_eof = 1;
  3228.     }
  3229.  
  3230.  
  3231. #ifdef YY_USE_PROTOS
  3232. void yy_load_buffer_state( void )
  3233. #else
  3234. void yy_load_buffer_state()
  3235. #endif
  3236.     {
  3237.     yy_n_chars = yy_current_buffer->yy_n_chars;
  3238.     yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
  3239.     yyin = yy_current_buffer->yy_input_file;
  3240.     yy_hold_char = *yy_c_buf_p;
  3241.     }
  3242.  
  3243.  
  3244. #ifdef YY_USE_PROTOS
  3245. YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
  3246. #else
  3247. YY_BUFFER_STATE yy_create_buffer( file, size )
  3248. FILE *file;
  3249. int size;
  3250. #endif
  3251.     {
  3252.     YY_BUFFER_STATE b;
  3253.  
  3254.     b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
  3255.     if ( ! b )
  3256.         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  3257.  
  3258.     b->yy_buf_size = size;
  3259.  
  3260.     /* yy_ch_buf has to be 2 characters longer than the size given because
  3261.      * we need to put in 2 end-of-buffer characters.
  3262.      */
  3263.     b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
  3264.     if ( ! b->yy_ch_buf )
  3265.         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  3266.  
  3267.     b->yy_is_our_buffer = 1;
  3268.  
  3269.     yy_init_buffer( b, file );
  3270.  
  3271.     return b;
  3272.     }
  3273.  
  3274.  
  3275. #ifdef YY_USE_PROTOS
  3276. void yy_delete_buffer( YY_BUFFER_STATE b )
  3277. #else
  3278. void yy_delete_buffer( b )
  3279. YY_BUFFER_STATE b;
  3280. #endif
  3281.     {
  3282.     if ( b == yy_current_buffer )
  3283.         yy_current_buffer = (YY_BUFFER_STATE) 0;
  3284.  
  3285.     if ( b->yy_is_our_buffer )
  3286.         yy_flex_free( (void *) b->yy_ch_buf );
  3287.  
  3288.     yy_flex_free( (void *) b );
  3289.     }
  3290.  
  3291.  
  3292. #ifndef YY_ALWAYS_INTERACTIVE
  3293. #ifndef YY_NEVER_INTERACTIVE
  3294. extern int isatty YY_PROTO(( int ));
  3295. #endif
  3296. #endif
  3297.  
  3298. #ifdef YY_USE_PROTOS
  3299. void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
  3300. #else
  3301. void yy_init_buffer( b, file )
  3302. YY_BUFFER_STATE b;
  3303. FILE *file;
  3304. #endif
  3305.  
  3306.  
  3307.     {
  3308.     yy_flush_buffer( b );
  3309.  
  3310.     b->yy_input_file = file;
  3311.     b->yy_fill_buffer = 1;
  3312.  
  3313. #if YY_ALWAYS_INTERACTIVE
  3314.     b->yy_is_interactive = 1;
  3315. #else
  3316. #if YY_NEVER_INTERACTIVE
  3317.     b->yy_is_interactive = 0;
  3318. #else
  3319. #ifdef __MWERKS__
  3320.     b->yy_is_interactive = 0;
  3321. #else
  3322.     b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
  3323. #endif
  3324. #endif
  3325. #endif
  3326.     }
  3327.  
  3328.  
  3329. #ifdef YY_USE_PROTOS
  3330. void yy_flush_buffer( YY_BUFFER_STATE b )
  3331. #else
  3332. void yy_flush_buffer( b )
  3333. YY_BUFFER_STATE b;
  3334. #endif
  3335.  
  3336.     {
  3337.     b->yy_n_chars = 0;
  3338.  
  3339.     /* We always need two end-of-buffer characters.  The first causes
  3340.      * a transition to the end-of-buffer state.  The second causes
  3341.      * a jam in that state.
  3342.      */
  3343.     b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
  3344.     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  3345.  
  3346.     b->yy_buf_pos = &b->yy_ch_buf[0];
  3347.  
  3348.     b->yy_at_bol = 1;
  3349.     b->yy_buffer_status = YY_BUFFER_NEW;
  3350.  
  3351.     if ( b == yy_current_buffer )
  3352.         yy_load_buffer_state();
  3353.     }
  3354.  
  3355.  
  3356. #ifndef YY_NO_SCAN_BUFFER
  3357. #ifdef YY_USE_PROTOS
  3358. YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
  3359. #else
  3360. YY_BUFFER_STATE yy_scan_buffer( base, size )
  3361. char *base;
  3362. yy_size_t size;
  3363. #endif
  3364.     {
  3365.     YY_BUFFER_STATE b;
  3366.  
  3367.     if ( size < 2 ||
  3368.          base[size-2] != YY_END_OF_BUFFER_CHAR ||
  3369.          base[size-1] != YY_END_OF_BUFFER_CHAR )
  3370.         /* They forgot to leave room for the EOB's. */
  3371.         return 0;
  3372.  
  3373.     b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
  3374.     if ( ! b )
  3375.         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
  3376.  
  3377.     b->yy_buf_size = size - 2;    /* "- 2" to take care of EOB's */
  3378.     b->yy_buf_pos = b->yy_ch_buf = base;
  3379.     b->yy_is_our_buffer = 0;
  3380.     b->yy_input_file = 0;
  3381.     b->yy_n_chars = b->yy_buf_size;
  3382.     b->yy_is_interactive = 0;
  3383.     b->yy_at_bol = 1;
  3384.     b->yy_fill_buffer = 0;
  3385.     b->yy_buffer_status = YY_BUFFER_NEW;
  3386.  
  3387.     yy_switch_to_buffer( b );
  3388.  
  3389.     return b;
  3390.     }
  3391. #endif
  3392.  
  3393.  
  3394. #ifndef YY_NO_SCAN_STRING
  3395. #ifdef YY_USE_PROTOS
  3396. YY_BUFFER_STATE yy_scan_string( const char *str )
  3397. #else
  3398. YY_BUFFER_STATE yy_scan_string( str )
  3399. const char *str;
  3400. #endif
  3401.     {
  3402.     int len;
  3403.     for ( len = 0; str[len]; ++len )
  3404.         ;
  3405.  
  3406.     return yy_scan_bytes( str, len );
  3407.     }
  3408. #endif
  3409.  
  3410.  
  3411. #ifndef YY_NO_SCAN_BYTES
  3412. #ifdef YY_USE_PROTOS
  3413. YY_BUFFER_STATE yy_scan_bytes( const char *bytes, int len )
  3414. #else
  3415. YY_BUFFER_STATE yy_scan_bytes( bytes, len )
  3416. const char *bytes;
  3417. int len;
  3418. #endif
  3419.     {
  3420.     YY_BUFFER_STATE b;
  3421.     char *buf;
  3422.     yy_size_t n;
  3423.     int i;
  3424.  
  3425.     /* Get memory for full buffer, including space for trailing EOB's. */
  3426.     n = len + 2;
  3427.     buf = (char *) yy_flex_alloc( n );
  3428.     if ( ! buf )
  3429.         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
  3430.  
  3431.     for ( i = 0; i < len; ++i )
  3432.         buf[i] = bytes[i];
  3433.  
  3434.     buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
  3435.  
  3436.     b = yy_scan_buffer( buf, n );
  3437.     if ( ! b )
  3438.         YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
  3439.  
  3440.     /* It's okay to grow etc. this buffer, and we should throw it
  3441.      * away when we're done.
  3442.      */
  3443.     b->yy_is_our_buffer = 1;
  3444.  
  3445.     return b;
  3446.     }
  3447. #endif
  3448.  
  3449.  
  3450. #ifndef YY_NO_PUSH_STATE
  3451. #ifdef YY_USE_PROTOS
  3452. static void yy_push_state( int new_state )
  3453. #else
  3454. static void yy_push_state( new_state )
  3455. int new_state;
  3456. #endif
  3457.     {
  3458.     if ( yy_start_stack_ptr >= yy_start_stack_depth )
  3459.         {
  3460.         yy_size_t new_size;
  3461.  
  3462.         yy_start_stack_depth += YY_START_STACK_INCR;
  3463.         new_size = yy_start_stack_depth * sizeof( int );
  3464.  
  3465.         if ( ! yy_start_stack )
  3466.             yy_start_stack = (int *) yy_flex_alloc( new_size );
  3467.  
  3468.         else
  3469.             yy_start_stack = (int *) yy_flex_realloc(
  3470.                     (void *) yy_start_stack, new_size );
  3471.  
  3472.         if ( ! yy_start_stack )
  3473.             YY_FATAL_ERROR(
  3474.             "out of memory expanding start-condition stack" );
  3475.         }
  3476.  
  3477.     yy_start_stack[yy_start_stack_ptr++] = YY_START;
  3478.  
  3479.     BEGIN(new_state);
  3480.     }
  3481. #endif
  3482.  
  3483.  
  3484. #ifndef YY_NO_POP_STATE
  3485. static void yy_pop_state()
  3486.     {
  3487.     if ( --yy_start_stack_ptr < 0 )
  3488.         YY_FATAL_ERROR( "start-condition stack underflow" );
  3489.  
  3490.     BEGIN(yy_start_stack[yy_start_stack_ptr]);
  3491.     }
  3492. #endif
  3493.  
  3494.  
  3495. #ifndef YY_NO_TOP_STATE
  3496. static int yy_top_state()
  3497.     {
  3498.     return yy_start_stack[yy_start_stack_ptr - 1];
  3499.     }
  3500. #endif
  3501.  
  3502. #ifndef YY_EXIT_FAILURE
  3503. #define YY_EXIT_FAILURE 2
  3504. #endif
  3505.  
  3506. #ifdef YY_USE_PROTOS
  3507. static void yy_fatal_error( const char msg[] )
  3508. #else
  3509. static void yy_fatal_error( msg )
  3510. char msg[];
  3511. #endif
  3512.     {
  3513.     (void) fprintf( stderr, "%s\n", msg );
  3514.     exit( YY_EXIT_FAILURE );
  3515.     }
  3516.  
  3517.  
  3518.  
  3519. /* Redefine yyless() so it works in section 3 code. */
  3520.  
  3521. #undef yyless
  3522. #define yyless(n) \
  3523.     do \
  3524.         { \
  3525.         /* Undo effects of setting up yytext. */ \
  3526.         yytext[yyleng] = yy_hold_char; \
  3527.         yy_c_buf_p = yytext + n - YY_MORE_ADJ; \
  3528.         yy_hold_char = *yy_c_buf_p; \
  3529.         *yy_c_buf_p = '\0'; \
  3530.         yyleng = n; \
  3531.         } \
  3532.     while ( 0 )
  3533.  
  3534.  
  3535. /* Internal utility routines. */
  3536.  
  3537. #ifndef yytext_ptr
  3538. #ifdef YY_USE_PROTOS
  3539. static void yy_flex_strncpy( char *s1, const char *s2, int n )
  3540. #else
  3541. static void yy_flex_strncpy( s1, s2, n )
  3542. char *s1;
  3543. const char *s2;
  3544. int n;
  3545. #endif
  3546.     {
  3547.     register int i;
  3548.     for ( i = 0; i < n; ++i )
  3549.         s1[i] = s2[i];
  3550.     }
  3551. #endif
  3552.  
  3553.  
  3554. #ifdef YY_USE_PROTOS
  3555. static void *yy_flex_alloc( yy_size_t size )
  3556. #else
  3557. static void *yy_flex_alloc( size )
  3558. yy_size_t size;
  3559. #endif
  3560.     {
  3561.     return (void *) malloc( size );
  3562.     }
  3563.  
  3564. #ifdef YY_USE_PROTOS
  3565. static void *yy_flex_realloc( void *ptr, yy_size_t size )
  3566. #else
  3567. static void *yy_flex_realloc( ptr, size )
  3568. void *ptr;
  3569. yy_size_t size;
  3570. #endif
  3571.     {
  3572.     return (void *) realloc( ptr, size );
  3573.     }
  3574.  
  3575. #ifdef YY_USE_PROTOS
  3576. static void yy_flex_free( void *ptr )
  3577. #else
  3578. static void yy_flex_free( ptr )
  3579. void *ptr;
  3580. #endif
  3581.     {
  3582.     free( ptr );
  3583.     }
  3584.  
  3585. #if YY_MAIN
  3586. int main()
  3587.     {
  3588.     yylex();
  3589.     return 0;
  3590.     }
  3591. #endif
  3592. #line 650 "scan.l"
  3593.  
  3594.  
  3595.  
  3596. int yywrap()
  3597.     {
  3598.     if ( --num_input_files > 0 )
  3599.         {
  3600.         set_input_file( *++input_files );
  3601.         return 0;
  3602.         }
  3603.  
  3604.     else
  3605.         return 1;
  3606.     }
  3607.  
  3608.  
  3609. /* set_input_file - open the given file (if NULL, stdin) for scanning */
  3610.  
  3611. void set_input_file( file )
  3612. char *file;
  3613.     {
  3614.     if ( file )
  3615.         {
  3616.         infilename = copy_string( file );
  3617.         yyin = fopen( infilename, "r" );
  3618.  
  3619.         if ( yyin == NULL )
  3620.             lerrsf( _( "can't open %s" ), file );
  3621.         }
  3622.  
  3623.     else
  3624.         {
  3625.         yyin = stdin;
  3626.         infilename = copy_string( "<stdin>" );
  3627.         }
  3628.  
  3629.     linenum = 1;
  3630.     }
  3631.  
  3632.  
  3633. /* Wrapper routines for accessing the scanner's malloc routines. */
  3634.  
  3635. void *flex_alloc( size )
  3636. size_t size;
  3637.     {
  3638.     return (void *) malloc( size );
  3639.     }
  3640.  
  3641. void *flex_realloc( ptr, size )
  3642. void *ptr;
  3643. size_t size;
  3644.     {
  3645.     return (void *) realloc( ptr, size );
  3646.     }
  3647.  
  3648. void flex_free( ptr )
  3649. void *ptr;
  3650.     {
  3651.     if ( ptr )
  3652.         free( ptr );
  3653.     }
  3654.